萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

KB967723 補丁導致 Windows Server 2003 MySQL 連接失敗 (10061) 解決方案

故障背景

Windows Server 2003 安裝 KB967723 更新後,MySQL 服務重啟出現 Can't connect to MySQL server on 'localhost' (10061)。原因是該補丁修改了 TCP/IP 協議棧,限制了臨時端口範圍,導致高併發下端口耗盡。

現象確認

  • 服務器非每日重啟,補丁安裝後首次重啟觸發
  • 錯誤碼 10061 = WSAECONNREFUSED(連接被拒絕)
  • 本地回環連接失敗,遠程同樣失敗

方案一:卸載補丁(快速止血)

  1. 控制面板 → 添加/刪除程序 → 勾選「顯示更新」
  2. 找到 KB967723 → 卸載
  3. 重啟服務器

風險:可能影響其他依賴該補丁安全修復的服務。

方案二:注冊表擴大臨時端口範圍(推薦,微軟官方方案)

操作步驟

  1. Win+R → regedit
  2. 定位:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. 右鍵新建 → DWORD (32位) 值 → 名稱:MaxUserPort
  4. 數值數據:65534(十進制)
  5. 重啟服務器生效

參數詳解

原理深度

  • KB967723 修復 TCP/IP 漏洞,副作用收緊臨時端口分配
  • MySQL 高併發短連接場景下,客戶端端口快速耗盡
  • 擴大至 65534 幾乎用盡用戶端口空間(1024-65535),消除瓶頸

驗證方法

netstat -an | findstr TIME_WAIT
# 觀察 TIME_WAIT 連接數是否大幅下降

mysql -h localhost -u root -p
# 應正常連接

適用範圍

  • Windows Server 2003 / XP / 2000(主流受影響版本)
  • SQL Server、IIS、其他高併發 TCP 服務同樣受益
copyright © 萬盛學電腦網 all rights reserved
參數默認值推薦值說明
MaxUserPort5000 (0x1388)65534用戶可用臨時端口上限
TcpTimedWaitDelay240 秒30-60TIME_WAIT 狀態保持時間,配合降低可加速端口復用