注意:Navicat主机栏填的是Centos虚拟机的IP地址
一、检查mysql容器
确保网络正常、保证mysql容器处于运行中且用户名、密码和端口正确。
1、查看mysql容器是否运行
bash
docker ps
2、查看mysql容器详细信息,可查看端口
bash
docker inspect mysql
二、检查防火墙:
1、如果您在使用 Linux 服务器,确保防火墙设置没有阻止外部访问 3306 端口。可以用以下命令查看当前防火墙设置:
bash
firewall-cmd --list-all
2、如果发现 3306 端口未开放,可以添加规则:
bash
firewall-cmd --zone=public --add-port=3306/tcp --permanent
3、避免添加完的端口未能被识别,执行了 firewall-cmd --reload 命令,以使更改生效:
bash
firewall-cmd --reload
防火墙配置分析
Zone: public (active)
当前活动的区域是 public,这通常表示适用于外部网络连接。
Target: default
目标策略为 default,这意味着如果没有其他规则匹配,则将应用默认行为。
Interfaces: ens33
防火墙当前配置与接口 ens33 相关联,这通常是您的网络接口。
Services: dhcpv6-client ssh
允许的服务包括 DHCPv6 客户端和 SSH。这意味着您可以通过 SSH 远程访问此机器。
Ports: (empty)
没有特别开放的端口。这是问题的关键所在,MySQL 的默认端口 3306 没有被列出,意味着它不能接受外部连接。
Protocols: (empty)
没有额外指定的协议。
Masquerade: no
没有启用 IP 伪装,这通常在 NAT 配置中使用。
Forward-ports: (empty)
没有配置端口转发规则。
Source-ports: (empty)
没有源端口的配置。
ICMP-blocks: (empty)
没有被阻止的 ICMP 协议。
Rich rules: (empty)
没有任何富规则(高级规则)。