宿主机无法连接docker的mysql
来源:3-3 Ubuntu中通过Docker安装配置MySQL主从节点

成龙哥哥
2019-05-19
ubuntu lts 18
Docker 版本 18.09.6
mysql 版本 5.7
宿主机无法连接docker的mysql,
但是 docker exec 进容器,可以连接
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
运行的容器信息
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d6f70df3a04 mysql:5.7 "docker-entrypoint.s…" 32 minutes ago Up 32 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp modest_hawking
尝试在宿主机连接
mysql -P 3306 -u root
#输入密码一直卡在这里
mysql -h 127.0.0.1 -P 3306 -u root -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2
在宿主机的ip
inet 172.16.133.130 netmask 255.255.255.0 broadcast 172.16.133.255
尝试在宿主机连接
mysql -P 3306 -u root
#输入密码一直卡在这里
mysql -h 172.16.133.130 -P 3306 -u root -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2
在容器内部
select user,host,plugin,authentication_string from mysql.user;
+---------------+-----------+-----------------------+-------------------------------------------+
| user | host | plugin | authentication_string |
+---------------+-----------+-----------------------+-------------------------------------------+
| root | localhost | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| mysql.session | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| root | % | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+---------------+-----------+-----------------------+-------------------------------------------+
4 rows in set (0.00 sec)
写回答
1回答
-
同学你好,可以尝试检查一下:
确认root有没开启远程登录的权限。先把这个远程登录打开试试看(不过看起来貌似已经放开了);
看下my.cnf有没skip-name-resolve这个配置,打开或关闭看看效果;
看下my.cnf的是否有:bind-address=127.0.0.1, 有的话可以改成0.0.0.0
重启mysql再看看。
092019-05-20
相似问题