这是因为MySQL8之前密码加密规则为mysql_native_password,而 MySQL8 之后的加密规则为caching_sha2_password,也就是说,如果要用Navicat连接MySQL,其实只需要将密码规则改回 mysql_native_password 即可;
1.启动MySQL容器并进入
docker exec -it mysql bash
2.进入mysql
3.3.给root用户分配远程访问权限
GRANT ALL PRIVILEGES ON . TO root@‘%’ WITH GRANT OPTION;
4.更改加密方式
ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER;
5.跟新用户密码
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
6.强制刷新权限。然后尝试连接。
FLUSH PRIVILEGES;
成功连接
成功连接!!
参考连接:https://blog.csdn.net/m0_50731646/article/details/134315874