Navicat无法连接Docker中的mysql8.0

Navicat无法连接Docker中的mysql8.0
今天在linux中安装docker和mysql8.0,安装完成后,在docker中部署了mysql并创建了一个数据库连接,在docker可以正常认证访问,但在Navicat中却始终无法连接,一直显示1251的错误,后来发现是mysql8.0的加密方式与以往版本不同。

caching_sha2_password和sha256_password认证插件比mysql_native_password插件提供的密码加密更加安全,并且caching_sha2_password加密比sha256_password的加密性能更好。由于caching_sha2_password这样优秀的安全和性能特性,让他作为MySQL8.0的首选认证插件,这也是默认的认证插件插件而不是mysql_native_password。
我的解决方法
1.进行授权远程连接

GRANT ALL ON *.* TO 'root'@'%';

2.更改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

3.更新root用户密码(注意‘ ’里面填你的密码)

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

4.刷新权限

flush privileges;

然后再次连接数据库就没有问题了。

你可能感兴趣的:(Navicat无法连接Docker中的mysql8.0)