navicat连接mysql8时报错:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found

发布时间:2022-06-25 11:37:24 作者:yexindonglai@163.com 阅读(558)

问题

在mac上,使用.dmg文件安装了mysql8.0.12,使用navicat连接mysql数据库时,报错:

  1. 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found

首先我们进入mysql看下mysql的加密方式

  1. mysql -u root -p
  2. use mysql;
  3. # 查看加密方式
  4. select user, host, plugin, authentication_string from user;

结果如下,

列说明:

  • user:用户名
  • host:支持登录的ip,%表示所有ip都可以登录
  • plugin:加密方式
  • authentication_string:加密后的字符串

可以看到,连接不上的原因是客户端不支持caching_sha2_password的密码加密方式。那么,我们需要修改用户密码加密方式为经典方式:mysql_native_password

解决方案

命令行连接mysql,修改用户密码的加密方式为mysql_native_password

  1. # 使用经典的密码加密方式
  2. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

刷新权限

修改权限或密码后,需要使用到该命令

  1. flush PRIVILEGES;

在次查看加密方式,发现已经改为mysql_native_password

而navicat也连接成功了

关键字Mysql

上一篇: ssh免密登录

下一篇: mysql权限使用教程