远程连接Docker上的Mysql失败的解决方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了远程连接Docker上的Mysql失败的解决方案相关的知识,希望对你有一定的参考价值。
之前VMWare虚拟机CentOS7使用DHCP,导致只要重启操作系统,网卡IP地址就改变。于是把网卡修改为手工设定IP地址,结果导致远程连接mysql出现如下错误,花了很多时间还没有解决,最终偶然想到Docker被外部请求访问可能有中转行为才得到解决。
ERROR 2003 (HY000): Cant connect to MySQL server on 192.168.101.26 (10060)
附上网卡配置文件修改指令:
cd /etc/sysconfig/system-scripts
vim ifcfg-ens33
以及网卡配置文件ifcfg-ens33内容:
解决方案:
(1)刚开始,我判断可能是防火墙没有开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=3306/tcp
但是远程连接还是存在同样的连接问题。
(2)于是判断mysql服务没有被防火墙允许,执行:
firewall-cmd --add-service=mysql
firewall-cmd --reload
firewall-cmd --query-service=mysql
但是远程连接还是存在同样的连接问题。
(3)于是判断docker没有被防火墙允许,但是提示如下错误:
Error: INVALID_SERVICE: docker
(4)到这里卡住了。Docker被外部请求访问,应该有一系列IP包转发行为,求助网络,有人认为防火墙默认不允许NAT转发,所以才导致很多问题产生。于是执行如下指令:
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --reload
systemctl restart docker
docker start 66bebcd41183
以上是关于远程连接Docker上的Mysql失败的解决方案的主要内容,如果未能解决你的问题,请参考以下文章