欢迎来到我的博客

解决Navicat连接MySQL出现1251-Client does not support authentication protocol requested by server;

解决Navicat连接MySQL出现1251-Client does not support authentication protocol requested by server;

一:出现的一个错

在安装完MySQL的时候,我们现在一般都使用Navicat来连接数据库,可惜出现下面的错误:1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client。

出现上述问题的原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 把mysql用户登录密码加密规则还原成mysql_native_password

我安装的时候是使用的安装包去安装的,所以新建了几个用户,cmd命令,连接mysql,查询系统当中所有的用户。
在这里插入图片描述
1.查看MYSQL数据库中所有用户

mysql> SELECT DISTINCT CONCAT(‘User: ‘’’,user,’’’@’’’,host,’’’;’) AS query FROM mysql.user;
2.修改加密规则,因为最新版的加密规则好像不一样,安装的过程当中是有提示的。

mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;;
3.修改用户的认证规则

mysql> alter user ‘用户名’@’localhost’ identified with mysql_native_password by ‘密码’;
例如我的用户名是root,密码是123456,那么,我修改的规则如下

mysql> alter user ‘root’@’localhost’ identified with mysql_native_password by ‘123456’;
注意:root@localhost之间不能有空格
如果还是报错 那么请你执行第4步
其中还有’用户名’@’%‘和’用户名’@'localhost’的区别,一个是任意连接,一个是本地连接。

4 升级权限

首先我们先使用数据库输入命令:

use mysql;

然后我们查看用户使用命令

select  user,host from user;

最后在执行第3步

5.刷新权限

mysql> flush privileges;
5.停止并重启服务

mysql> net stop mysql
mysql> net start mysql
12

这里需要注意的是:mysql这个是你的mysql服务的名称,具体名称如何查询呢?假如你的服务名称为MySQL57,那么mysql就得改成MySQL57。

现在再去用Navicat去连接数据库,就不会出现上述的问题了。

二:联系方式

qq:2061302791

微信:xie2061302791

电话:15284524485

个人网站:https://xieyingpeng.github.io/

Github:https://github.com/xieyingpeng/

博客园:https://www.cnblogs.com/Xieyingpengz

知乎:https://www.zhihu.com/people/nan-qiao-12-73

gitee:https://gitee.com/xie-yingpeng/project-1.git

bilibili:https://space.bilibili.com/617198338?share_medium=android&share_source=copy_link&bbid=XY2BDF522C748A159BE7DD354D6DFFB963728&ts=1612520115798

posted @ 2021-04-13 08:57  XieYingpeng  阅读(1884)  评论(0编辑  收藏  举报