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’@’%’:

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

mysql> use mysql;
Database changed

mysql> select user,host from user;
±-----------------±----------+
| user | host |
±-----------------±----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
±-----------------±----------+
5 rows in set (0.00 sec)

转自https://blog.csdn.net/m0_37590468/article/details/80900993

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