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

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

附上一张效果图:

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

(0)

相关推荐

  • Navicat Premium 15无限试用注册表修改的方法详解

    最近看上了Navicat Premium 15对PostgreSQL的支持,老版本的会有找不到oid字段报错,网上栖息的一些和谐版本是通过暴力修改二进制文件中的密钥来完成的,把可执行文件的数字签名也给破坏了,若遇到别有用心的捆绑个后门也不是不可以,运行着没有底气,于是寻找突破14天试用的办法. 网上有12版本的删注册表方法,显得有些暴力,本文在这些方法的基础上缩小了删除的范围,避免伤及无辜. 首先把HKEY_CURRENT_USER\Software\Classes\CLSID和HKEY_CUR

  • 详解Navicat Premium 15 无限试用脚本的方法

    具体内容如下所示: @echo off echo\ echo\ echo 适用于 Navicat 12.0.29 echo 正在清除试用信息... for /f %%i in ('reg query HKCU\Software\Classes\CLSID') do call:checkDelCLSID %%i reg delete HKCR\NavicatProfileBackup /f 1>nul 2>nul reg delete HKCR\NavicatProfileBatchJob /f

  • MySQL关于ERROR 1290 (HY000)报错解决方法

    一个问题纠结很久,反复确认语法问题.但是后来网上搜了一下,茅塞顿开.特此总结一下. mysql> grant select,insert,update,delete on *.* to 'root'@'%'; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement mysql> flush privileges;

  • Navicat Premium 15 永久破解激活工具及安装教程(亲测可用)

    前言 Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL.SQLite.Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便. 最新版的Navicat Premium 15 已经发布了,但是此工具是收费的,学习的话买,不怎么划算,所以双手奉上白嫖版的. 页面: 下载安装包和破解工具 此处附上官网下载地址:http://www.navicat.com.cn/download/navicat-p

  • Navicat Premium15安装及破解教程(附破解失败解决方案)

    Navicate Premium安装及破解教程 Nacivat安装 百度搜索Navicate或者直接进入 参考教程: https://www.jb51.net/article/199496.htm 选择产品 选择免费试用 根据自己的电脑选择版本 打开下载路径,双击安装包 点击下一步 勾选同意 ,点击下一步 选择安装路径,尽量不要装在C盘,点击下一步 点击下一步 点击下一步 点击安装 等待安装完成后,点击完成即可 Navicat破解 下载激活软件,断网即可进行激活,激活软件Navicat_Keyg

  • 解决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解决Navicat设置默认字符串时的报错问题

    目录 简介 问题复现 原因分析 解决方案 简介 说明 本文介绍用Navicat添加字段(字符串类型)并设置默认值时的报错问题. 问题描述 在Java开发过程中,经常会遇到给已有的表添加字段的场景. 在插入新字段的时候,表里边可能已经有很多数据了,这时我们最好给新插入的字段设置一个默认值,这样MySQL就会将已经存在的数据的新加字段设置为默认值.设置默认值可以增加系统的可维护性. 但我在给已有的表插入新字段(字符串类型)的时候发现报错了,本文介绍如何解决这个问题. 报错信息 1064 - You

  • 解决navicat远程连接mysql报错10038的问题

    navicat远程连接mysql报错10038一般由以下两个原因: 一:本地防火墙问题 在本地安装了mysql.navicat并打开了mysql服务的情况下,来设置防火墙. 首先右击或者点击入站规则,找到新建规则,点击. 点击端口. 在特定本地端口中填入3306. 一直点击下一步. 这里可以给一个好分别的名称即可. 之前再尝试连接即可,若仍然不可以,可能是服务器方面的问题. 二:服务器3306端口未打开 首先需要在安全组开放端口. 我这里使用的是阿里云服务器.首先需要进入云服务器,找到安全组.

  • 解决Navicat远程连接MySQL出现 10060 unknow error的方法

    前言:今天想远程连接一下自己服务器上的MySQL,用的用的软件是Navicat,服务器上的MySQL版本为5.7 第一次连接的时候就出意外了 大概意思是 无法连接MySQL服务,解决步骤如下 第一:首先检查你的阿里或腾讯的服务器控制台是否开启3306端口访问权限,关于在哪里看,请自行百度,我的如下,可以看到,并没有允许远程连接 如果和我一样没开启,那就开启吧 开启允许所有连接后,再试试 又出错了,这次的大概意思是 拒绝访问这个MySQL服务,解决如下 第一:进入MySQL,选择MySQL数据库,

  • 解决Navicat Premium 15连接数据库闪退的问题

    首先排查下网上大神说的有道词典的问题. 我是没有有道词典打开,连接数据库的时候闪退,以此打开,工具-选项-环境 进入OCI环境配置,修改OCIlibrary为为自己对应数据库的oci.dll配置文件(我的是oracle数据库,oracle官网下载对应的instantclient并解压) 退出后,重新连接,成功. 知识点扩展: 解决Navicat Premium 连接Oracle闪退 前言:之前有过使用Navicat Premium 连接Oracle闪退的情况,因为怕自己忘记,所以写一下如果碰到这

  • Navicat连接mysql报错1251错误的解决方法

    本文为大家分享了Navicat连接mysql报错1251错误的解决方法,供大家参考 错误提示 出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 解决办法:把mysql用户登录密码加密规则还原成mysql_native_password. 步骤: 1.打开cmd命令窗口,输入命令 mysql -uroot -p 打开MySQL数据库,然后输入密码进行登录. 2.修改加密规则 将加

  • 解决Navicat无法连接 VMware中Centos系统中的 MySQL服务器的问题

    Host 'xxxx' is not allowed to connect to this MySQL server的解决方法 报错:1130 -Host *** is not allowed to connect to this MySQL server 这里的ip也发生了错误,我输入的是192.168.117.101但是报错报成192.168.117.1 实际的连接不上,可能有很多种,如果是上面这种报错信息,则下面就是解决方法.如果不是, 可能原因有  网络无法连通,文章链接:Centos设

  • 解决Navicat Premium 12连接Oracle时提示oracle library is not loaded的问题

    笔者使用的Navicat Premium 12启动界面截屏: 请注意是64位的.笔者win7 64位系统. 连接Oracle时提示"oracle library is not loaded". 解决方法: 1.前往"http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html" 2.选择与自己系统匹配的"Instant

  • mysql修改sql_mode报错的解决

    目录 一 ERR 1067引发的血案 二 问题的源头sql_mode 三 设置sql_mode 一 ERR 1067引发的血案 今天在Navicat中运行sql语句创建数据表出现了错误Err 1067.而这条语句在有些同事的mysql上是正确的,但是在有些人那里就报错.你说气不气人. 原因竟然是timestamp的默认值不正确. 查阅资料得知,mysql5.7版本中有了一个STRICT mode(严格模式),而在此模式下默认是不允许设置日期的值为全0值的,所以想要 解决这个问题,就需要修改sql

  • 详解Navicat远程连接mysql很慢

     最终解决办法在最后一张图片 如果你连接远程数据库(Linux系统)并且很慢(具体症状为第一次连接打开所有的表貌似不是很慢,正常的,但是隔几分钟后任意打开一张表就很慢,即时数据很少的表依然很慢),我们用命令找到配置文件(mysql5.7的) sudo vi /etc/my.cnf 此时一般会提示你输入密码,那么你输入密码后,再执行编辑命令 sudo vi /etc/my.cnf 点击键盘insert键此时进入编辑模式,找到对应的位置,把需要配置的(如下)添加进去 [mysqld] #远程连接忽略

随机推荐