如何配置mysql防火墙_mysql端口放行方法

9次阅读

MySQL 远程连接失败需同时检查三处:本地防火墙(firewalld/ufw)放行 3306 端口、MySQL 配置 bind-address=0.0.0.0 允许远程访问、云服务器安全组开放 TCP 3306 端口。

如何配置 mysql 防火墙_mysql 端口放行方法

MySQL 默认使用 3306 端口 ,若远程连接失败,很可能是系统 防火墙 (如 firewalld 或 ufw)或 云服务 器安全组未放行该端口。配置关键是确认当前使用的防火墙服务,并针对性开放 3306 端口,同时确保 MySQL 服务本身允许远程访问。

确认正在运行的防火墙服务

Linux 常见防火墙有 firewalld(CentOS/RHEL 7+、Fedora)、ufw(Ubuntu/Debian)和 iptables(较老系统)。先查清你用的是哪一个:

  • firewalld:运行 sudo systemctl status firewalld,若显示 active,则使用 firewalld 规则
  • ufw:运行 sudo ufw status verbose,若启用则走 ufw 流程
  • iptables:运行 sudo iptables -L -n | grep 3306,若无输出且前两者都未启用,才需手动配 iptables(不推荐新手直接操作)

firewalld 放行 MySQL 端口(3306)

firewalld 推荐使用服务名方式管理,更安全可靠:

  • 查看是否已有 mysql 服务定义:sudo firewall-cmd –get-services | grep mysql
  • 若存在,直接启用:sudo firewall-cmd –permanent –add-service=mysql
  • 若不存在或想手动指定端口:sudo firewall-cmd –permanent –add-port=3306/tcp
  • 重载规则生效:sudo firewall-cmd –reload
  • 验证:sudo firewall-cmd –list-portssudo firewall-cmd –list-all

ufw 放行 MySQL 端口(3306)

Ubuntu/Debian 用户常用 ufw,操作简洁:

  • 启用 ufw(如未启用):sudo ufw enable
  • 允许 3306 端口(仅 TCP):sudo ufw allow 3306/tcp
  • 如需限制仅某 IP 访问(更安全):sudo ufw allow from 192.168.1.100 to any port 3306
  • 查看状态:sudo ufw status numbered

别忘了检查 云服务器 安全组(阿里云 腾讯 云、AWS 等)

即使本地防火墙已放行,云平台还有独立的安全组策略,必须同步配置:

  • 登录云控制台 → 找到对应云服务器(ECS/EC2)→ 进入“安全组”设置
  • 编辑入方向(Inbound)规则,添加一条:协议类型 TCP,端口范围 3306,源 IP 可填具体 IP 或 0.0.0.0/0(不建议生产环境全放开)
  • 保存后无需重启服务器,规则即时生效

不复杂但容易忽略,三处都要检查:本地防火墙(firewalld/ufw)、MySQL 绑定地址(bind-address = 0.0.0.0 在 my.cnf 中)、云平台安全组。缺一不可。

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-01发表,共计1258字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources