错误
使用Navicat Premium 连接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时在输入密码)。
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
使权限配置项立即生效。