注:原因为MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_sha2_password),对此,我们将mysql用户使用的 登录密码加密规则 还原成 mysql_native_password,即可登陆成功。
mac上用homebrew安装mysql步骤:
1.brew install mysql(默认安装mysql8)
安装完成后:启动mysql服务
2.bash mysql.server start
这个时候用navicat 连接会报错2059 Authentication plugin 'caching_sha2_password' cannot be loaded
这是因为新版mysql数据库的加密方式变了:
3.登录数据库 mysql -u root -p
mysql> use mysql;
4.通过命令 select user,plugin from user where user='root'; 我们可以发现加密方式是caching_sha2_password
5.mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| admin | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| zhangj | localhost |
+------------------+-----------+
注意我的root,host是'%'
6.然后使用命令:alter user 'root'@'%' identified with mysql_native_password by 'your password';
执行这个语句时如果报错“ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'”,就执行第6步,如果没报错就走第7步
7.保留当前窗口,新打开一个窗口,重新进入mysql,执行该命令就可以了
再次查看,就发现加密方式已经更改:
8.接着找到my.cnf文件(不知道目录的可以通过brew list mysql来确定目录)并加上加密方式:
default_authentication_plugin=mysql_native_password
9.保存后,重启mysql服务命令:mysql.server restart