Can't connect to MySQL server on localhost (10048)
Windows 專有錯誤,高併發短連接場景頻發。
TCP 連接關閉後進入 TIME_WAIT 狀態,默認持續 240 秒(4 分鐘)。短連接爆發時端口耗盡,新連接無可用端口,報 WSAEADDRINUSE (10048)。
TcpTimedWaitDelayregedit。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ParametersTcpTimedWaitDelay(DWORD 類型),不存在則新建 DWORD (32-bit) Value 命名為 TcpTimedWaitDelay。wait_timeout、interactive_timeout 適當縮短(如 30-60s),配合 max_connections 提升。SELECT 1 保活。/proc/sys/net/ipv4/tcp_tw_reuse=1、tcp_tw_recycle=1(內核 4.12+ 已移除,改用 tcp_tw_reuse)。
netstat -an | findstr TIME_WAIT
# 調整前數千條,調整後大幅減少