VS2010链接Mysql Authentication to host 'xx' for user 'root' using method 'caching_
Posted 老王家的大牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2010链接Mysql Authentication to host 'xx' for user 'root' using method 'caching_相关的知识,希望对你有一定的参考价值。
原因:
这是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:ProgramDataMySQLMySQL Server 8.0)可以参考一下
将下面这行代码添加在[mysqld]下
default_authentication_plugin=mysql_native_password
然后重启mysql服务。然而我测试有一点儿小问题。
方案三:创建一个新的用户,设置新的加密插件方式进行加密,然后赋予权限将数据库表添加在该用户可访问。
具体的自行尝试一下,原理可行。
温馨提示:不建议用navicat工具对root用户加密插件进行操作,博主上次就是这样搞了之后root用户就直接挂掉了,说来都是泪啊。
然后开始了修改密码一区不复返的道路 参考网址https://blog.csdn.net/weixin_42289383/article/details/98039313
另外再说一个非常神奇的事情:以上所有操作都尝试一个遍之后还是不行,你把电脑的网断掉变单机(博主拔掉无线网卡),奇迹的事情发生了,什么报错都没了,你说气人不?!让人哭笑不得。
以上是关于VS2010链接Mysql Authentication to host 'xx' for user 'root' using method 'caching_的主要内容,如果未能解决你的问题,请参考以下文章
如何修复从 VS2010 升级到 VS2013 的项目中的链接器错误,其中链接器正在寻找不存在的 MFC 库文件?