今數據庫更新到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,重置密碼mysql
alter user 'root'@'localhost' identified by '你的密碼';
博主嘗試第二遍把密碼改回原來的密碼的時候,沒有執行刷新權限命令也是能夠的,如上圖,接下來Navicat,SQLyog就可使用sql