错误

使用Navicat Premium 连接MySQL 8.0 时出现2059错误:

Navicat 连接MySQL 8.0出现2059报错的解决办法_用户名

原因

MySQL8.0 之前的版本中加密规则是mysql_native_password,而在MySQL8.0之后,加密规则是caching_sha2_password 

解决办法

解决方案一: 下载Navicat for MySQL 12.1.17以上版本,官网下载地址http://www.navicat.com.cn/download/navicat-for-mysql

解决方案二:(适用于Navicat for MySQL 12.1以下版本)

1、使用CMD命令,win + R键 输入cmd按回车(Enter)

2、切换到MySQL安装文件下(MySQL数据库默认安装在文件夹):

cd C:\Program Files\MySQL\MySQL Server 8.0\bin

3、输入以下命令连接MySQL数据库

mysql -hlocalhost -uroot -p 

按回车(注意这里的"-h"、"-u"、"-p"不能省略) 进入mysql数据库,其中"-h"表示服务器名,localhost表示本地;"-u"为数据库用户名,root是MySQL默认用户名;"-p"为密码,如果设置了密码,可直接在-p后链接输入,如:-p888888,用户没有设置密码,显示Enter password时,直接回车即可(也可以先不输入密码,当提示Enter password时在输入密码)。

Navicat 连接MySQL 8.0出现2059报错的解决办法_用户名_02

4、输入以下命令查看加密方式

use mysql;
select user,plugin from user where user='root';

可以看到当前用户的加密方式为caching_sha2_password

5、更改加密方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

将用户的加密方式改为mysql_native_password。

6、执行命令

flush privileges

使权限配置项立即生效。