问题

使用Navicat 连接 docker容器下的MySQL报错如下:

2059 - Authentication plugin 'caching sha2 password' cannot be loaded: .X0009000g麒

image-20240513203714015

这是因为 MySQL8 之前密码加密规则为 mysql_native_password,而 MySQL8 之后的加密规则为 caching_sha2_password,也就是说,如果要用 Navicat 连接 MySQL,其实只需要将密码规则改回 mysql_native_password 即可;

解决方案

  1. 进入MySQL数据库

docker exec -it mysql-test /bin/bash
mysql -uroot -p
Enter password:root123456
  1. 连接数据库

use mysql;
  1. 更改密码加密方式

IDENTIFIED BY ‘root123456’:连接时输入密码,密码为 root123456

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456';
  1. 刷新权限

FLUSH PRIVILEGES;