navicat 远程连接docker mysql提示:Authentication plugin 'caching_sha2_password' cannot be loaded
1、docker启动mysql服务2、使用navicat远程连接mysql服务3、docker mysql 容器启动配置参数因工作中使用mysql进行数据测试,想到利用docker启动mysql服务更加方便、快捷,更不会影响服务器上其它服务的运行,所以使用docker pull mysql 进行服务启动,结果在运行后发现,mysql8默认插件不支持navicat连接,为了记录下次使用时再次遇到这个问题,记录下解决方式。
1、docker启动mysql服务
hadoop@ubuntu:~$ sudo docker pull mysqlhadoop@ubuntu:~$ sudo docker run -d -p 3306:3306 -v /home/hadoop/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql --restart always mysql
以上命令执行后,启动了mysql服务
hadoop@ubuntu:~$ sudo docker psCONTAINER ID IMAGECOMMAND CREATED STATUS PORTS NAMESba391a4caab8 mysql"docker-entrypoint.s…" 8 minutes ago Up 8 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysqlhadoop@ubuntu:~$
2、使用navicat远程连接mysql服务
打开navicat工具,输入远程服务相关信息,点击测试连接,提示:Authentication plugin ‘caching_sha2_password’ cannot be loaded
然后在网上各种搜索,出来的答案基本上需要进入容器mysql服务内进行修改参数或者执行sql来修改。
3、docker mysql 容器启动配置参数
在多次搜索无效资料后,本人决定上docker mysql 官网查看是否可设置mysql配置选项,结果找到对应的配置项
看到这里,既然mysql可以通过启动时进行字符集的默认设置,那这个插件的默认应该也可以设置,于是,执行官方所说的命令来查看可用列表
hadoop@ubuntu:~$ sudo docker run -it --rm mysql --verbose --help
终于找到对应的选项,于是,删除mysql对应的容器和挂在的数据卷,重新运行mysql容器,在命令的最后添加一句:–default-authentication-plugin=mysql_native_password
hadoop@ubuntu:~$ sudo docker run -d -p 3306:3306 -v /home/hadoop/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql --restart always mysql --default-authentication-plugin=mysql_native_password
启动容器后,重新使用navicat远程连接,连接成功!!
如果觉得《navicat 远程连接docker mysql提示:Authentication plugin ‘caching_sha2_password‘ cannot be loaded》对你有帮助,请点赞、收藏,并留下你的观点哦!