首页 > 数据库技术 > 详细

虚拟机中docker安装mysql远程无法访问

时间:2020-04-25 13:23:22      阅读:62      评论:0      收藏:0      [点我收藏+]

问题:虚拟机中docker安装mysql远程无法访问

背景:

[root@localhost ~]# docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

navicat远程连接mysql的时候,会提示以下错误:

1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client

原因:

mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,把mysql用户登录密码加密规则还原成mysql_native_password

解决:

1.在虚拟机中登录到mysql容器,然后进入mysql

[root@localhost ~]# docker exec -it mysql01 bash

root@9c99a69a5b50:/# mysql -uroot -p
mysql> select host,user,plugin,authentication_string from mysql.user;

技术分享图片

备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

2.修改加密规则

mysql> alter user ‘root‘@‘%‘ identified with mysql_native_password by ‘123456‘;

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

技术分享图片

连接成功
技术分享图片

虚拟机中docker安装mysql远程无法访问

原文:https://www.cnblogs.com/sunyanblog/p/12772293.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!