mysql在Windows上安装时关闭防火墙配置

来源:这里教程网 时间:2026-02-28 20:50:33 作者:

MySQL Windows 安装时是否必须关闭防火墙

不需要关闭防火墙。MySQL 默认监听

127.0.0.1:3306
,只接受本地连接,防火墙通常不会拦截。只有当你需要从其他机器(比如另一台电脑、虚拟机、Docker 容器)远程访问 MySQL 时,才涉及防火墙配置问题。

哪些场景下要配置 Windows 防火墙

典型情况是:MySQL 服务绑定了

0.0.0.0:3306
:::3306
(IPv6),且你希望局域网内其他设备能连上它。此时 Windows 防火墙默认会阻止入站 TCP 连接。

检查 MySQL 绑定地址:
SELECT @@bind_address;
返回
0.0.0.0
才需放行
确认端口监听状态:
netstat -ano | findstr :3306
看是否有
LISTENING
且 IP 是
0.0.0.0
仅需添加一条入站规则,协议选
TCP
,端口填
3306
,作用域可限制为局域网 IP 段(如
192.168.1.0/24

用 PowerShell 快速添加防火墙规则(推荐)

比图形界面更可控,也方便复现。执行前请以管理员身份运行 PowerShell:

New-NetFirewallRule -DisplayName "MySQL Server" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow -Profile Private
-Profile Private
表示仅在“专用网络”(如家庭/公司局域网)生效,不开放公网
若误加规则,可用
Get-NetFirewallRule -DisplayName "MySQL Server"
查看,再用
Remove-NetFirewallRule
删除
不要用
Disable-NetFirewallRule
或直接关防火墙——这会暴露整个系统

常见错误:明明开了防火墙规则还是连不上

多数不是防火墙问题,而是 MySQL 权限或网络配置没调对:

用户账户没授权远程主机:
CREATE USER 'user'@'%' IDENTIFIED BY 'pass'; GRANT ALL ON *.* TO 'user'@'%'; FLUSH PRIVILEGES;
MySQL 配置文件
my.ini
skip-networking=1
被启用(必须注释掉)
bind_address
被设为
127.0.0.1
(只能本地连),需改为
0.0.0.0
或注释该行
Windows 防火墙有多个规则冲突,比如同时存在“阻止所有 TCP 入站”,它优先级更高

真正需要动防火墙的时候很少,但一旦要动,务必限制作用域和协议类型,别图省事关整个防火墙。

相关推荐