PHP 應用間歇性報錯 Can't connect to MySQL server,刷新頁面即恢復。高併發下頻發,嚴重影響可用性。
原理:該補丁修改 TCP/IP 協議棧行為,導致大量短連線下臨時端口耗盡、TIME_WAIT 積壓,引發連線失敗。
regeditHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ParametersMaxUserPort65534 (十進制,範圍 5000-65534)0x1388 (5000)原理:預設僅 5000 個臨時端口 (1024-5000),高併發短連線快速耗盡。擴大至 65534 大幅降低端口耗盡機率。
mysqli:p: 前綴) 或專用連線池 (ProxySQL, PgBouncer 類產品) 減少建連開銷。wait_timeout / interactive_timeout:縮短 (如 60s) 加速釋放閒置連線。net.ipv4.tcp_tw_reuse = 1, net.ipv4.tcp_tw_recycle = 1 (Linux 內核參數,慎用 NAT 環境)。netstat -an | grep TIME_WAIT | wc -l 觀察端口佔用趨勢。| 方案 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| 卸載 KB967723 | 徹底解決、無副作用 | 失去補丁安全性修復 | 內網、可控環境 |
| 擴大 MaxUserPort | 保留補丁、標準做法 | 需重啟 OS、端口仍有上限 | 生產環境、需合規 |