解决Navicat Premium 连接 MySQL 8.0 报错"1251"的问题分析

 更新时间:2020年11月12日 10:33:51   作者:程序员的一天  
这篇文章主要介绍了解决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

低版本Navicat Premium 连接msyql8报错

二、原因

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 永久破解安装教程

免责申明:仅供技术交流,如产生法律纠纷与本人无关。如有侵犯版本,联系删除!

附上一张效果图:

成功连接

到此这篇关于Navicat Premium 连接 MySQL 8.0 报错“1251”分析解决的文章就介绍到这了,更多相关Navicat Premium 连接 MySQL 8.0 报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL中写入包含有英文单引号“ '''' ”失败问题深入详解

    SQL中写入包含有英文单引号“ '''' ”失败问题深入详解

    这篇文章主要介绍了SQL中写入包含有英文单引号“ ' ”失败问题深入详解,列举了具体实例讲解,有感兴趣的同学可以研究下
    2021-03-03
  • 浅谈为什么Mysql数据库尽量避免NULL

    浅谈为什么Mysql数据库尽量避免NULL

    这篇文章主要介绍了浅谈为什么Mysql数据库尽量避免NULL,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 允许远程访问MySQL的实现方式

    允许远程访问MySQL的实现方式

    这篇文章主要介绍了允许远程访问MySQL的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • MySQL数据库 触发器 trigger

    MySQL数据库 触发器 trigger

    这篇文章主要介绍了MySQL数据库 触发器 trigger,触发器是一种特殊类型的存储过程,触发器通过事件进行触发而被执行,可通过数据库中的相关表实现级联更改,保证数据安全,进行安全校验
    2022-06-06
  • 服务器数据库编码格式问题解决方案

    服务器数据库编码格式问题解决方案

    这篇文章主要介绍了服务器数据库编码格式问题解决方案的相关资料,需要的朋友可以参考下
    2016-11-11
  • Mysql单表访问方法图文示例详解

    Mysql单表访问方法图文示例详解

    这篇文章主要为大家介绍了Mysql单表访问方法图文示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • php后台经常提示无法连接mysql 刷新后又可以访问的解决方法

    php后台经常提示无法连接mysql 刷新后又可以访问的解决方法

    这几天有一台MySQL数据库服务器出现了频繁的掉线情况,通过排查,并没有排查出哪个网站被攻击,百思不得其解中的时候,群里有个朋友说是因为微软KB967723造成的,网上搜索了一下,果然很多人都是这样的问题,都是windows系统下安装的MySQL造成的
    2011-05-05
  • MySQL插入数据与查询数据

    MySQL插入数据与查询数据

    这篇文章主要介绍了 MySQL插入数据与查询数据,缺省插入、缺省插入、缺省插入等各种数据插入分享,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-03-03
  • 查看当前mysql使用频繁的sql语句(详解)

    查看当前mysql使用频繁的sql语句(详解)

    下面小编就为大家带来一篇查看当前mysql使用频繁的sql语句(详解)。小编觉的挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • mysql语句如何插入含单引号或反斜杠的值详解

    mysql语句如何插入含单引号或反斜杠的值详解

    这篇文章主要给大家介绍了关于mysql语句如何插入含单引号或反斜杠的值的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02

最新评论