Windows Server 2008 R2 安裝 MySQL 5.0 後,本地正常、賬號授權正確,但外部客戶端死活連不上。經排查是 Windows 防火牆攔截,需同時放行「端口」與「程序」兩條入站規則。
解決步驟
- 打開 控制面板 → Windows 防火牆 → 高級設置 → 入站規則。
- 右側 新建規則 → 端口 → TCP → 特定本地端口:3306 → 允許連接 → 全選(域/專用/公用) → 命名「MySQL 3306 Port」。
- 再次 新建規則 → 程序 → 此程序路徑:
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld.exe → 允許連接 → 全選 → 命名「MySQL Server Program」。
- 外部客戶端測試連接,成功!
為什麼需要兩條規則?
- 端口規則:允許 TCP 3306 進入網絡層。
- 程序規則:允許
mysqld.exe 進程發送/接收網絡數據(某些版本防火牆同時校驗進程)。
- 僅開端口仍可能被「程序過濾」攔截,雙保險才萬無一失。
生產環境加固建議
- 規則作用域限制為「專用/域」,公用網絡禁用。
- 遠程訪問改用 VPN/堡壘機,不直接暴露 3306。
- 啟用 MySQL SSL 加密、強密碼策略、
require_secure_transport。
- 定期審計防火牆規則,關閉無用端口。