我發現一個奇怪的MySQL的行爲,我努力解釋MySQL使用空用戶名在連接錯誤消息
[[email protected] ~]$ mysql -u root12 subdb
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'subdb'
它使用空字符串「」作爲錯誤信息的用戶名,即使我明確提供root12。如果我提供正確的用戶名連接沒有問題,所以我懷疑這只是mysql報告錯誤的方式。
這是一個錯誤還是無證的功能?
[[email protected] ~]$ mysql --version
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
編輯
人們似乎被這個問題的措辭混淆。我使用root12作爲用戶名,而不是密碼。我也說mysql沒有密碼root12。此外,root12用戶甚至不存在。所以這是一個明顯的身份驗證失敗。我的問題是,爲什麼說的instad
ERROR 1044 (42000): Access denied for user 'root12'@'localhost' to database 'subdb'
它說
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'subdb'
編輯
運行CentOS6.5,MySQL的73年1月5日在這裏。 TESTUSER用戶不存在原來
[[email protected] ~]$ mysql -u testuser subdb
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'subdb'
[[email protected] ~]$ mysql -u root
...
mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpassword';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[[email protected] ~]$ mysql -u testuser subdb
ERROR 1045 (28000): Access denied for user 'testuser'@'localhost' (using password: NO)
這是從這個輸出是,MySQL(好像只有這個版本)明確的用戶名是否存在泄漏信息。如果它不存在,則錯誤消息將用戶名重置爲空字符串。如果是這樣,MySQL總是用戶名完好
@Drew這些步驟來REPRO的錯誤消息。我導致認證錯誤,因爲我需要mysql給我的錯誤信息。 –