連接MySQL數據常見問題


 

錯誤信息1 :ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:YES)
錯誤信息2  :ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:NO) 

 

總結

總結:對於 ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1'  此類錯誤返回時, (using password: ?)中?的

關鍵字是YES還是NO,關鍵不在於用戶是否存在,密碼是否正確,它的結果取決於登錄時,用戶對於密碼有沒有字符串的輸入,
如果沒有,MySQL數據庫驗證后,若出錯返回此類信息,則應是 (using password: NO),若用戶對密碼有字符串的輸入,返回的則是 (using password: YES)。

 

原因1 : 客戶端遠程訪問的用戶賬號並未創建

 

檢查

以管理員ROOT登錄后,show grants for 'user'@’IP‘; 或者 select user from mysql.user; 確認用戶賬號是否存在。

mysql> show grants for 'test'@'127.0.0.1'; ERROR 1141 (42000): There is no such grant defined for user 'test' on host '127.0.0.1' mysql>

返回信息:ERROR 1141 (42000): There is no such grant defined for user 'test' on host '127.0.0.1'
說明,沒有jtsec用戶,或者沒有對jtsec用戶進行在192.168.8.123遠程訪問的授權。

解決

mysql>  grant all privileges on *.* to 'test'@'127.0.0.1' identified by 'test' with grant option;

mysql> flush privileges;

mysql> show grants for 'test'@'127.0.0.1';

mysql> select user,host from mysql.user;

 

原因2 : 用戶賬號存在,但未對其所在的客戶端的IP進行遠程訪問授權允許

 

檢查

以管理員ROOT登錄后 show grants for 'user'@'IP';

mysql> show grants for 'root'@'127.0.0.1';

ERROR 1141 (42000): There is no such grant defined for user 'root' on host '127.0.0.1'


返回信息:ERROR 1141 (42000): There is no such grant defined for user 'root' on host '127.0.0.1'
說明,沒有root用戶,或者沒有對root用戶進行在127.0.0.1遠程訪問的授權。


mysql> show grants for 'root'@'localhost';
或者直接查詢mysql的user用戶表select user,host from mysql.user;
mysql> select user,host from mysql.user;

 

解決

進行root用戶的遠程訪問授權,可以授權到指定的客戶端IP,也可以授權為所有IP都可訪問(host值為%)。

授權為所有IP都使用用戶root,密碼root,來遠程訪問數據庫

mysql> GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

mysql> flush privileges;

再次進行授權的查詢

mysql> show grants for 'root'@'%';

再次查詢授權表記錄
mysql> select user,host,password from mysql.user;
注意: mysql5.7用下面這條語句查詢 mysql
> select user,host,authentication_string from mysql.user;

 

原因3 : 用戶賬號授權訪問的密碼不正確

 

檢查

以管理員ROOT登錄后, select user,host, authentication_string  from mysql.user;
mysql> select user,host, authentication_string from mysql.user;

 

解決

使用正確的訪問密碼進行訪問即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM