【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】

使用Navicat连接时报1251错误,如下图:
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】_第1张图片

原因

MySQL8.0后的版本加密规则是“caching_sha2_password”,而 MySQL8.0之前的版本加密规则是“mysql_native_password”

解决办法

更改加密规则,将MySQL用户登录密码加密规则还原成“mysql_native_password”。

下面开始具体操作
1 以管理员身份运行 cmd,进入MySQL的bin目录下;

2输入命令“mysql -u root -p”后输入密码进入mysql,如下图:
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】_第2张图片
3.先修改加密规则,指令如为:【ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;】如下图:
在这里插入图片描述
4.更改密码,因为修改了加密规则,所以需要重新设置密码,指令为:【ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新的密码';】如下图:
在这里插入图片描述
5.最后刷新下数据库,指令为:【FLUSH PRIVILEGES;】,如下图:
在这里插入图片描述
再使用Navicat可以成功。

注意

localhost为MySQL服务的IP,需根据MySQL实际的安装位置填写。

方法二

输入

> ALTER USER 'root' @'localhost' IDENTIFIED WITH caching_sha2_password BY '123456' ;
> SELECT plugin FROM mysql.user WHERE User = 'root';

注意:此处“123456”为你的mysql密码

如图所示,表明成功:

【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】_第3张图片

方法二自测,我是用方法一成功的。

你可能感兴趣的:(mysql,服务器,数据库)