最大的原因是因为 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
如果是docker的话,加上第一行,不是的话直接跳过第一行即可。
2、更改密码加密方式
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
上述的‘123456’是自己的密码。
3.、更新用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4、刷新权限
FLUSH PRIVILEGES;