问题
使用Navicat 连接 docker容器下的MySQL报错如下:
2059 - Authentication plugin ‘caching sha2 password’ cannot be loaded: .X0009000g麒
这是因为 MySQL8 之前密码加密规则为 mysql_native_password,而 MySQL8 之后的加密规则为 caching_sha2_password,也就是说,如果要用 Navicat 连接 MySQL,其实只需要将密码规则改回 mysql_native_password 即可;
解决方案
- 进入MySQL数据库
docker exec -it mysql-test /bin/bash
mysql -uroot -p
Enter password:root123456
- 连接数据库
use mysql;
- 更改密码加密方式
IDENTIFIED BY ‘root123456’:连接时输入密码,密码为 root123456
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456';
- 刷新权限
FLUSH PRIVILEGES;
- Navicat 连接 MySQL