2011-01-28 97 views
0

由於某些原因,當創建一個空密碼的MySQL用戶時,如果用戶與系統用戶(Ubuntu Server 10.04,MySQL版本5.1.41)具有相同的名稱,則只允許連接。根據我目前閱讀的所有內容,MySQL用戶應該完全獨立於系統用戶帳戶,因此我不知道如何解釋發生了什麼。允許mysql無密碼連接

我做錯了什麼?某些地方是否存在影響此設置的設置?

(附加信息: 我了此項設置爲從本地網絡只允許連接;一些我使用的一個項目的工具,而不需要密碼的用戶。)

這可能似乎是一個重複的,雖然當我搜索我找不到任何關於這個問題的任何問題。如果之前有人問過同樣的問題,我很抱歉。

回答

-1

這裏是我在mysql文檔中發現的東西。

使用SET PASSWORD,INSERT或UPDATE分配帳戶非空密碼時,必須使用PASSWORD()函數加密密碼,否則密碼將以明文形式存儲。假設你喜歡這個設定密碼:

mysql> SET PASSWORD FOR 
    -> 'username'@'localhost' = 'mypass'; 

結果是文本值「將mypass」被存儲在用戶表中的密碼,而不是加密值。當用戶使用此密碼嘗試連接到服務器時,該值將被加密並與存儲在用戶表中的值進行比較。但是,存儲的值是文本字符串'mypass',所以比較失敗,服務器拒絕與Access拒絕的連接。errorFirst具有帶有某個密碼的用戶名(系統名除外)。

因此,用一些passowrd來選擇你的用戶名,然後使用PASSWORD()函數來設置一個空密碼。該功能的使用可以看到here

+0

感謝您的回答,但將密碼設置爲密碼('')與創建用戶時不添加「由IDENTIFIED BY 」具有相同的效果。我剛剛嘗試了一個名字與系統用戶不同的用戶,並且mysql再次拒絕連接。 – Joseph 2011-01-28 18:29:28