当 Navicat 无法连接数据库时,防火墙设置是常见原因之一。以下是详细的排查和解决方法:
Windows 系统: - 打开"控制面板 > Windows Defender 防火墙 > 允许应用或功能通过防火墙" - 查找并确保 Navicat 或相关数据库客户端程序在允许列表中 - 如果没有,点击"允许其他应用"添加 Navicat 主程序
macOS 系统: - 打开"系统偏好设置 > 安全性与隐私 > 防火墙" - 点击"防火墙选项"确保 Navicat 被允许传入连接
Linux 服务器 (iptables/firewalld/ufw):
# 查看当前防火墙规则
sudo iptables -L -n
# 或
sudo firewall-cmd --list-all
# 或
sudo ufw status
# 开放数据库端口(例如MySQL默认3306)
sudo ufw allow 3306/tcp
# 或
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
Windows 服务器: - 打开"控制面板 > Windows Defender 防火墙 > 高级设置" - 添加入站规则,允许特定数据库端口(如3306)
对于阿里云、AWS、腾讯云等云服务器: - 登录云服务商控制台 - 找到对应实例的安全组配置 - 添加入站规则,允许您的IP或IP段访问数据库端口
在本地计算机上测试端口连通性:
# Windows:
telnet 服务器IP 3306
# Linux/macOS:
nc -zv 服务器IP 3306
或
telnet 服务器IP 3306
如果连接失败,说明防火墙仍有拦截。
确保数据库服务不仅运行,而且监听在正确的网络接口上:
-- MySQL/MariaDB 查看绑定IP
SHOW VARIABLES LIKE 'bind_address';
-- 如果绑定为127.0.0.1,需要修改为0.0.0.0或特定IP
tcpdump
或 Wireshark 抓包分析/var/log/messages
或 Windows事件查看器)中的防火墙拦截记录如果以上方法仍不能解决问题,可能需要检查网络设备(如路由器、交换机)上的ACL规则,或联系网络管理员进一步排查。