Navicat连接MySQL8+时出现2059错误解决方法

1、现象描述:

在用Navicat Premimu 12连接MySQL8+时会出现2059错误:

 

2、原因分析:

mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,但此时的Navicat Premimu 12还没有支持这种验证方式。

3、解决办法

解决方法就是将验证方式改为以前版本(5.7及以下)使用的验证方式mysql_native_password。具体的验证方式可以查看默认数据库'mysql'中user表plugin字段。

在命令行中登录数据库,执行下面的命令:

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

注意: 'root'可以改为你自己定义的用户名,'localhost'指的是该用户开放的IP,可以是'localhost'(仅本机访问,相当于127.0.0.1),可以是具体的'*.*.*.*'(具体某一IP),也可以时'%'(所有IP均可访问)。'password'是你想使用的验证密码。

 

                                          图一: 操做步骤截图