问题
使用docker创建了mysql容器
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql
之后用navicat等软件无法连接mysql服务器?;岢鱿秩缦绿崾荆?/p>
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