应用软件版本
- Mysql:8.0.21
- Navicat Premium:12
问题场景
- 使用docker在虚拟机运行了一个mysql容器,进入容器内部登录mysql 正常,端口已映射到虚拟机上,访问正常;使用Navicat工具连接,确认用户名、密码、ip地址无误的情况下报错:
问题原因
- mysql 8版本之后 加密规则有所变化,由之前版本的“mysql_native_password”变为“caching_sha2_password”
处理方法
- 修改mysql 用户密码加密规则,重置用户密码
– 1、查询所需要修改的用户名
– 2、修改用户密码加密规则
– 3、更新用户密码ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
– 4、刷新权限ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
– 5、重置密码FLUSH PRIVILEGES;
ALTER USER 'root'@'%' IDENTIFIED BY '123456'
- 图示:
- 再次使用Navicat 连接该数据库,连接成功