Loading

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; 
  1. 打开命令行工具
  2. 第一行登录 MySQL
  3. 第二行修改加密规则
  4. 第三行更新一下用户的密码
  5. 第四行刷新权限
  6. 回到 Navicat 重新连接,完成!

注意,这里的 localhost 指的是你自己的主机名,root 指的是你自己的用户名,password 指的是你自己的密码


当然我们也可以在安装 MySQL 时就使用 caching_sha2_password 设置密码:

img

还有一种方法就是开头说的升级 Navicat 驱动,也能解决这个问题,有钱人可以选择这个方法。

posted @ 2020-11-21 13:11  一只豆子  阅读(133)  评论(0)    收藏  举报