navicat 连接 mysql 报1251错误
使用 Navicat 连接 MySql 时报错:
1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client
不懂就问,先翻译下报错信息:说是客户端不支持服务器请求的身份验证协议;请考虑升级 MySQL 客户端。这里的客户端说的就是 Navicat ,服务端说的就是 MySQL。他让我们去升级 Navicat,由于众所周知的原因,这个操作一般不好完成,看看有没有别的办法。
从服务端入手,查找发现 MySQL 8 之前的版本中加密规则是 mysql_native_password,而在 MySQL 8 之后,加密规则是 caching_sha2_password,那我们把 MySQL 用户登录密码加密规则还原成 mysql_native_password 不就行了。
mysql -h localhost -u root -p password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
- 打开命令行工具
- 第一行登录 MySQL
- 第二行修改加密规则
- 第三行更新一下用户的密码
- 第四行刷新权限
- 回到 Navicat 重新连接,完成!
注意,这里的 localhost 指的是你自己的主机名,root 指的是你自己的用户名,password 指的是你自己的密码
当然我们也可以在安装 MySQL 时就使用 caching_sha2_password 设置密码:
还有一种方法就是开头说的升级 Navicat 驱动,也能解决这个问题,有钱人可以选择这个方法。

浙公网安备 33010602011771号