端口 3306 — MySQL (TCP)
什么是端口 3306?
MySQL 数据库
这是注册端口(1024–49151),常分配给 MySQL 等服务。 · No formal RFC; MySQL Client/Server Protocol
什么情况下需要开放端口 3306?
Open only when an application on a different host must connect to MySQL. For single-server setups (app and database on the same machine), keep port 3306 closed externally and connect via a local socket or 127.0.0.1.
常见用途与软件
- MySQL Server
- MariaDB
- Percona Server
- WordPress
- Drupal
- phpMyAdmin (backend)
- Laravel
- Django
安全
Bind MySQL to 127.0.0.1 by setting bind-address in my.cnf unless remote access is explicitly needed. Never expose port 3306 to the internet. For remote access, use an SSH tunnel: ssh -L 3306:localhost:3306 user@server. Grant privileges using least-privilege principles — avoid GRANT ALL and the root account for application connections.
端口 3306 安全吗?
开放端口会增加攻击面。安全性取决于 MySQL 的配置。
保持 MySQL 及时更新安全补丁。要求强身份验证并将访问限制为最低必要的 IP 地址。
测试任意主机的端口 3306 连通性。
开放端口 3306
要允许到端口 3306 (MySQL) 的入站连接,请配置防火墙并在路由器上添加端口转发规则,指向设备的本地 IP 地址。
打开 Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则 → 端口 → TCP → 特定本地端口: 3306 → 允许连接 → 命名并保存规则。
netsh advfirewall firewall add rule name="Open Port 3306" dir=in action=allow protocol=tcp localport=3306sudo ufw allow 3306/tcpsudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT登录路由器(192.168.1.1 或 192.168.0.1)→ 端口转发 → 添加新规则: 协议 TCP, 外部端口 3306, 内部 IP: 设备的本地 IP, 内部端口 3306 → 保存。
如何关闭端口 3306
若不需要 MySQL,请在防火墙或路由器中阻止该端口。
要在 Windows 上屏蔽端口 3306,请以管理员身份在 PowerShell 或命令提示符中运行以下命令:
netsh advfirewall firewall add rule name="Block Port 3306" dir=in action=block protocol=tcp localport=3306执行:sudo ufw deny 3306/tcpsudo iptables -A INPUT -p tcp --dport 3306 -j DROP删除或禁用端口 3306 的端口转发规则。
常见问题
端口 3306 用于什么?▾
3306 端口是 MySQL 的标准 TCP 端口。它被需要接受该服务入站连接的服务器和应用程序所使用。是否需要开放取决于您是否在运行 MySQL 服务器——如果没有,应保持关闭。
保持端口 3306 打开安全吗?▾
开放的 3306 端口会扩大攻击面。如果您没有主动运行 MySQL,请在防火墙中关闭此端口并删除端口转发规则。如果 MySQL 需要可访问,请将访问限制为已知 IP 地址并保持软件更新。