贝利信息

mysql环境搭建时防火墙端口放行配置说明

日期:2026-01-24 00:00 / 作者:P粉602998670
MySQL默认端口是3306,但实际部署中可能被修改(如多实例、云数据库、容器化),必须通过ss/netstat查运行端口、grep查配置文件、Docker映射端口等方式确认真实端口,否则放行错误端口将导致连接失败。

MySQL 默认端口是什么,为什么必须确认它

MySQL 默认监听 3306 端口,但实际部署中可能被修改(比如多实例、云数据库、容器化部署)。不确认真实端口就放行 3306,很可能连不上——尤其是用 mys

qld --port=3307 启动,或配置文件里写了 port = 3308

firewalld 放行 MySQL 端口的正确命令

CentOS/RHEL 7+ 默认用 firewalld,直接开放端口比添加服务更可控,避免因 mysql 服务定义不匹配导致失效。

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

ufw 下如何安全放行,避免全网开放

Ubuntu/Debian 常用 ufw,默认策略是拒绝入站。只开 3306 端口不够安全,应限制访问来源 IP 段。

sudo ufw allow from 192.168.1.0/24 to any port 3306 proto tcp
sudo ufw reload

Windows Server 上通过 PowerShell 配置防火墙

Windows Server 的 MySQL 若用于内部系统集成,常被忽略防火墙设置。图形界面容易点错,PowerShell 命令更可靠。

New-NetFirewallRule -DisplayName "MySQL Server" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow -Enabled True

实际放行后仍连不上,大概率是 MySQL 自身没监听外网(bind-address = 127.0.0.1)、用户权限没授权远程主机(GRANT ... ON . TO 'user'@'%' IDENTIFIED BY 'pwd'),或者云平台(阿里云/腾讯云)的安全组没同步放开——防火墙只是其中一环,别只盯着它调。