今資料庫更新到8.0的版本後,使用DataGrip和workbench都可以連結資料庫,但是使用Navicat,SQLyog連接配接不上資料庫,提示上面錯誤,這就比較炸毛了...,百度檢視了一圈的博文,試了很多方法都沒解決,卻遇到一個有意思的事情,檢視一篇部落客博文的時候,想試一下他的解決方案,剛好看見他的博文下面評論罵聲一片,說部落客害人不淺,哈哈,為了不讓自己忘記,并且幫大家解決問題,話不多說附上教程:
原因分析:
其實是mysql8.0版更換了新的身份驗證是(caching_sha2_password)之前身份驗證是(mysql_native_password),Navicat,和SQLyog用戶端軟體其實是不支援新的身份驗證,也就是說新的身份驗證找不到(caching_sha2_password),既然知道了是這個問題,那麼我們就把登入密碼加密規則改回(mysql_native_password),就好啦~~~~~~
操作流程:
打開WindowsDOS指令行視窗就是指令提示符,以管理者身份運作【PS:使用的Windows指令提示符,你要把自己的MySQL的環境變量配置好】,當然你要是說我不用的Windows的指令行用戶端,那也是沒有任何問題的你可以使用MySQL的自帶的指令行用戶端!
1,登入MySQL,使用指令
mysql -u root -p或mysql -u root -ppassword【ps:-ppassword後面的密碼是你的root密碼】
2,修改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
3,更新使用者密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
4,重新整理權限
FLUSH PRIVILEGES;
5,重置密碼
alter user 'root'@'localhost' identified by '你的密碼';

部落客嘗試第二遍把密碼改回原來的密碼的時候,沒有執行重新整理權限指令也是可以的,如上圖,接下來Navicat,SQLyog就可以使用