最简单解决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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容