环境
- macOS 10.14.6 (18G87)
- MySQL 8.0.16
- Navicat
错误信息
Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
原因
- 不是客户端Navicat的原因,是MySQL兼容问题,需要修改数据库的认证方式
- MySQL8.0版本默认的认证方式是caching_sha2_password
- MySQL5.7版本则为mysql_native_password。
借鉴文档:
https://blog.51cto.com/fengfeng688/2147169
解决办法1
- 打开系统偏好设置,找到mysql,点击Initialize Database。
- 输入你的密码。
- 选择‘Use legacy password‘。
- 重启mysql服务。
- 重新使用Navicat链接数据库
解决办法2
用终端连接MySQL,然后执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
解决办法3
修改my.cnf 文件,再重启MySQL:
vim my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password