遠端連線MySQL錯誤“plugin caching_sha2_password could not be loaded”的解決辦法

這行程式碼沒Bug發表於2021-06-27

遠端連線MySQL錯誤“plugin caching_sha2_password could not be loaded”的解決辦法

問題描述:

今天在阿里雲租了一個伺服器,當我用sqlyog遠端連線mysql時,報了plugin caching_sha2_password could not be loaded錯,即無法載入外掛快取sha2密碼,但是我在cmd視窗就可以訪問,在網上找了很多解決方法都沒有解決,最後找到了原因。在MySQL 8.0中,caching_sha2_password是預設的身份驗證外掛,而不是mysql_native_password,伺服器可以正常連線,本地cmd視窗 mysql -hxx.xx.xx.xx -P3306 -uroot -pRoot123. 可以正常連線,所以是我的sqlyog版本太舊了。

解決辦法:

網上有兩種解決辦法,一種就是升級sqlyog,一種是修改mysql預設身份驗證外掛。

1. 升級SQLyog

第一種就不用說了,SQLyog-13.1.6-0.x64是預設支援mysql8.0以上身份驗證,把低版本的sqlyog升級到13.1.6就可以解決。

2. 修改身份驗證外掛

首先登入mysql

mysql -hlocalhost -uroot -pRoot123.

這裡跟很多博主都是一樣的操作,但是這方法只能解決本地的連線問題,遠端連線還是有問題。下面的123456是自己的密碼

# 修改加密規則(非必須)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123.' PASSWORD EXPIRE NEVER; 
# 更新使用者的密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root123.'; 
# 重新整理許可權
FLUSH PRIVILEGES;
# 重置密碼(==非必須==)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123.';

如果你需要使用遠端登入,將localhost 改為%就可以解決遠端連線的問題。

# 修改加密規則(非必須)
ALTER USER 'root'@'%' IDENTIFIED BY 'Root123.' PASSWORD EXPIRE NEVER; 
# 更新使用者的密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root123.';
# 重新整理許可權
FLUSH PRIVILEGES;
# 重置密碼(==非必須==)
ALTER USER 'root'@'%' IDENTIFIED BY 'Root123.';

至此本地和遠端root使用者密碼策略修改完畢,如果想修改其他的使用者,仿照上面命令設定即可。


相關文章