最简单解决docker mysql8 登陆认证失败的方法

问题

使用docker创建了mysql容器

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql

之后用navicat等软件无法连接mysql服务器。会出现如下提示:

MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found

原因

从MySQL8.0 开始,默认的加密规则使用的是 caching_sha2_password,之前使用的是mysql_native_password。而我们的客户端并不支持 caching_sha2_password这种规则。

解决

docker镜像创建的时传入参数,使mysql服务器默认使用mysql_native_password规则。

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql --default-authentication-plugin=mysql_native_password

你可能感兴趣的:(最简单解决docker mysql8 登陆认证失败的方法)