SqlYog無法連接mysql數據庫(包括docker環境)的解決方法


Sqlyog安裝后連接mysql數據庫,報錯:2058.

這是密碼加密算法更新導致的,解決如下:

1.打開cmd 連接數據庫:

mysql -h localhost -P 3306 -u root -p123456

2.進入mysql依次執行下面語句

①修改加密規則(注意不要忘記寫分號“;”)

alter user 'root'@'localhost' identified by 'root' password expire never;

②更新密碼為“Root123"

alater user 'root'@'localhost' identified with mysql_native_password by 'Root123';

③刷新權限

flush privileges;

如果是本地安裝的mysql數據庫,執行完以上步驟再連接應該就沒有問題了。

 

但是在docker中安裝的mysql這樣操作沒有解決問題,而且連密碼都沒有修改成功,不知道是第②步弄錯了還是什么原因,執行以下查詢語句后發現跟本機安裝的mysql查詢出來的內容不一樣,不知道是不是版本問題。

SELECT HOST,USER,PLUGIN FROM mysql.user;

結果如下:

 

 發現多了一行Host值為“%”的,User為“root”的數據,算法依然是caching_sha2_password.

於是再將這個root用的密碼加密算法修改為"mysql_native_password",並將密碼修改為 “Root123”

alter user 'root'@'%' identified with mysql_native_password by 'Root123';

刷新權限

flush privileges;

然后再連接就沒有問題了。

 

猜想了一下應該是mysql的版本問題,docker中安裝的是最新的8.0.19版本,而本機安裝的是8.0.11,只是猜想沒有驗證,有興趣的可以驗證一下。


免責聲明!

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



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