时间:2021-07-01 10:21:17 帮助过:18人阅读
这是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
另外再说一个非常神奇的事情:以上所有操作都尝试一个遍之后还是不行,你把电脑的网断掉变单机(博主拔掉无线网卡),奇迹的事情发生了,什么报错都没了,你说气人不?!让人哭笑不得。
VS2010链接Mysql Authentication to host 'xx' for user 'root' using method 'caching_sha2_password'
标签:更新 报错 color title ogr The lin 经典 模式