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


遠程連接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用戶密碼策略修改完畢,如果想修改其他的用戶,仿照上面命令設置即可。



免責聲明!

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



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