解决方案
最近在学习Docker部署MySQL,通过Navicat访问MySQL容器实例,提示如下:
于是这时我想应该是3306端口没有打开,通过执行以下命令,开放3306端口。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
此时提示FirewallD is not running,经过排查发现是防火墙就没打开造成的。
遇到此类问题我首先是查看一下防火墙的状态,发现当前是dead状态,即防火墙未开启。
systemctl status firewalld //查看firewalld状态
此时我需要先开启防火墙,执行以下命令,没有任何提示即开启成功。
systemctl start firewalld
也可执行以下命令查看防火墙是否开启成功。
systemctl status firewalld //查看firewalld状态
我继续执行以下命令开放3306端口,提示success,表示设置成功。
firewall-cmd --permanent --zone=public --add-port=3306/tcp
此时,我在通过Navicat链接我的MySQL容器时,可以正常链接。
如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。