解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
人闲太久,努力一下就以为是在拼命。

一、问题
Navicat Premium 连接 MySQL 8.0 报错:
1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
二、原因
MySQL 8.0 改变了密码认证方式。
在 MySQL 8.0 之前版本的密码认证方式为:
mysql_native_password
为了提供更安全的密码加密方式,从 MySQL 8.0 版本开始,默认使用密码认证方式为:
caching_sha2_password
报错 1251 的原因也很明显:
Client does not support authentication protocol requested by server;
翻译为中文就是:“客户端不支持服务端请求的认证协议”。
我这里用的 Navicat Premium 11 去连接 MySQL 8.0,因为版本太低,所以不支持 caching_sha2_password 的密码加密方式!!
在 MySQL 命令行终端,可以查看版本以及默认密码认证方式:
root@程序员的一天:/# mysql -u root -p Enter password: Welcome to the MySQL monitor. mysql> mysql> # 查看版本 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.21 | +-----------+ 1 row in set (0.00 sec) mysql> mysql> # 查看默认加密方式 mysql> mysql> use mysql; Database changed mysql> mysql> select host, user, plugin from user; +-----------+------------------+-----------------------+ | host | user | plugin | +-----------+------------------+-----------------------+ | % | root | caching_sha2_password | | localhost | mysql.infoschema | caching_sha2_password | | localhost | mysql.session | caching_sha2_password | | localhost | mysql.sys | caching_sha2_password | | localhost | root | caching_sha2_password | +-----------+------------------+-----------------------+ 5 rows in set (0.00 sec) mysql>
可以看到,
MySQL 8.0默认全部用户的密码加密方式都是caching_sha2_password。
三、解决
解决这个问题,有两种方法。
- 方法1:修改
MySQL 8.0的密码认证方式。 - 方法2:安装新版本
Navicat Premium。
两种方法都可行,但是加密规则最好不要乱改,很容易出问题。所以,推荐使用“方法2”。
3.1、修改 MySQL 8.0 密码认证方式
MySQL 命令行终端分别执行以下操作:
# 更新root用户的密码为"123456", # 注意,这里需要将"123456"换成自己的密码,请勿使用弱密码! ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; # 刷新权限,使密码更新生效 FLUSH PRIVILEGES;
简单演示一下:
第一步:进入 mysql 命令行终端。
root@ed2a490912e5:/# mysql -u root -p Enter password: mysql>
第二步:查看默认密码认证方式。
mysql> use mysql; mysql> select host, user, plugin from user; +-----------+------------------+-----------------------+ | host | user | plugin | +-----------+------------------+-----------------------+ | % | root | caching_sha2_password | | localhost | mysql.infoschema | caching_sha2_password | | localhost | mysql.session | caching_sha2_password | | localhost | mysql.sys | caching_sha2_password | | localhost | root | caching_sha2_password | +-----------+------------------+-----------------------+ 5 rows in set (0.00 sec) mysql>
可以看到,
root用户密码认证方式为caching_sha2_password。
第三步:修改 root 用户密码认证方式,如果是其他用户,root 替换为其他用户名即可。等同于更新一下密码!
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; Query OK, 0 rows affected (0.05 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.04 sec)
第四步:再次查看 root 用户密码认证方式。
mysql> select host, user, plugin from user; +-----------+------------------+-----------------------+ | host | user | plugin | +-----------+------------------+-----------------------+ | % | root | caching_sha2_password | | localhost | mysql.infoschema | caching_sha2_password | | localhost | mysql.session | caching_sha2_password | | localhost | mysql.sys | caching_sha2_password | | localhost | root | mysql_native_password | +-----------+------------------+-----------------------+ 5 rows in set (0.00 sec)
注意看,
root用户密码认证方式变成了mysql_native_password。
再次使用Navicat Premium 11 连接 MySQL 8.0,连接成功!
再次提示,修改密码认证方式,很容易出问题,不推荐!
3.2、安装新版本 Navicat Premium
经我测试,Navicat Premium 12 及以上版本均支持 MySQL 8.0 连接。最新版本是 Navicat Premium 15,官网下载地址:
http://www.navicat.com.cn/download/navicat-premium
安装很简单,运行安装包,根据提示一步一步安装即可。遗憾的是 Navicat Premium 不是免费软件,永久许可证价格比较昂贵… …官网报价:人民币 4,449.0 元,企业版甚至上万了。贫穷,让我流下眼泪,哭唧唧
好在可以破解!!!
具体可以参考:Navicat Premium 15 永久破解安装教程
免责申明:仅供技术交流,如产生法律纠纷与本人无关。如有侵犯版本,联系删除!
附上一张效果图:
代码知识SEO上一篇 : 详解Navicat Premium 15 无限试用脚本的方法
下一篇 : 在vue中给后台接口传的值为数组的格式代码
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!