navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决

这个文章是转自https://blog.csdn.net/qq_42152399/article/details/80360817  这个人又是转载了https://blog.csdn.net/XDMFC/article/details/80263215这个人的,担心哪天这俩都没了 故自己再搞一下    上传图片很麻烦,我就不上传了,尽量描述详细。

此外,这个方式还解决了我再安装解压版时的一个问题,就是mysql8在选择无密码mysqld --initialize-insecure这种方式的时候,在最后执行set password=password('new password');的时候会报语法错误,很尴尬,于是我想用navicat链接一下然后再执行sql

的但是又发生了这个错误,不过解决了1251这个错误之后,密码也成功的修改了!

1、通过命令行进入解压的mysql根目录下。

2、登陆数据库

通过cmd的方式登录mysql数据库:管理员身份打开cmd窗口,切换到mysql的bin目录下,输入mysql -u root -p 回车,然后如数‘你的密码’,回车 登录到mysql。

3、更改加密方式:

输入下面的sql;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

4、更改密码:该例子中 123为新密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';

5、刷新权限

mysql> FLUSH PRIVILEGES;


那位小哥加了下面这行话

“这步完成后我已经成功解决了问题。如果报错,可以看下面,博主依然给出了解决方案“

// 如果报错ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%':

则是远程访问权限不正确,先选择数据库,查看一下再更改:

1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> use mysql;
Database  changed
 
mysql>  select  user ,host  from  user ;
+ ------------------+-----------+
user              | host      |
+ ------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+ ------------------+-----------+
rows  in  set  (0.00 sec)
最后,感谢参考的该博主。此次转载只希望帮助更多的人,毕竟在犄角旮旯里找到这个方案不容易。若有人想要转载,请注明原博主也就是https://blog.csdn.net/XDMFC/article/details/80263215这个人的,谢谢。

你可能感兴趣的:(navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决)