VS2010鏈接Mysql Authentication to host 'xx' for user 'root' using method 'caching_sha2_password'


原因:

這是mysql比較經典的問題,本人在這個問題上也是深受其害,淚奔中。。。

mysql 8.0 版本默認使用 caching_sha2_password 身份驗證插件機制

mysql 8.0以前版本(5.7)使用 mysql_native_password

低版本升級到8.0 驗證方式不變,新用戶使用8.0驗證方式改變,而客戶端不支持新的加密方式

逛完了所有的帖子,給大家提供一些可靠的解決方案。

 

解決方案:

 

方案一:針對用戶修改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
如果執行報錯的話請檢查user和host
mysql> use mysql; mysql> select user,host from user;
可以改成:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';

更新密碼(mysql_native_password模式) ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
方案二:修改mysql的配置文件my.ini文件  我的事在安裝目錄下的(C:\ProgramData\MySQL\MySQL Server 8.0)可以參考一下
將下面這行代碼添加在[mysqld]下
default_authentication_plugin=mysql_native_password
然后重啟mysql服務。然而我測試有一點兒小問題。
方案三:創建一個新的用戶,設置新的加密插件方式進行加密,然后賦予權限將數據庫表添加在該用戶可訪問。
具體的自行嘗試一下,原理可行。

溫馨提示:不建議用navicat工具對root用戶加密插件進行操作,博主上次就是這樣搞了之后root用戶就直接掛掉了,說來都是淚啊。
然后開始了修改密碼一區不復返的道路 參考網址https://blog.csdn.net/weixin_42289383/article/details/98039313

另外
再說一個非常神奇的事情:以上所有操作都嘗試一個遍之后還是不行,你把電腦的網斷掉變單機(博主拔掉無線網卡),奇跡的事情發生了,什么報錯都沒了,你說氣人不?!讓人哭笑不得。

 

 


免責聲明!

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



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