解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题解决办法
这篇文章主要为大家详细介绍了解决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
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
为了提供更安全的密码加密方式,从 MySQL 8.0
版本开始,默认使用密码认证方式为:
代码如下:
caching_sha2_password
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
报错 1251
的原因也很明显:
代码如下:
Client does not support authentication protocol requested by server;
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
翻译为中文就是:“客户端不支持服务端请求的认证协议”。
我这里用的 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>
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
可以看到,
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;
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
简单演示一下:
第一步:进入 mysql
命令行终端。
代码如下:
root@ed2a490912e5:/# mysql -u root -p
Enter password:
mysql>
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
第二步:查看默认密码认证方式。
代码如下:
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>
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
可以看到,
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)
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
第四步:再次查看 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)
解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析
注意看,
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 永久破解安装教程
免责申明:仅供技术交流,如产生法律纠纷与本人无关。如有侵犯版本,联系删除!
到此这篇关于Navicat Premium 连接 MySQL 8.0 报错“1251”分析解决的文章就介绍到这了,更多相关Navicat Premium 连接 MySQL 8.0 报错内容请搜索512笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持512笔记!
注:关于解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题示例的内容就先介绍到这里,更多相关文章的可以留意