錯誤碼速查表
| 錯誤碼 | 含義 | 典型原因 |
| 10061 | Connection refused | MySQL 服務未啟動、端口錯誤、防火牆阻擋 |
| 10055 | No buffer space available | 連接數耗盡、TIME_WAIT 過多、TCP 參數需調優 |
| 10060 | Connection timed out | 網絡不通、防火牆攔截、IP 綁定錯誤 |
分類排查步驟
虛擬主機/共享主機用戶
- 聯系服務商確認 MySQL 服務狀態。
- 確認連接地址是否為
localhost 或指定 IP。
- 檢查控制面板數據庫配置信息。
獨立服務器/VPS 用戶(Windows)
- 檢查服務:
services.msc → MySQL 服務狀態為「運行中」。
- 端口監聽:
netstat -ano | findstr 3306 確認 3306 端口監聽。
- 防火牆:入站規則放行 3306(TCP)。
- 配置文件:
my.ini 中 bind-address=0.0.0.0 或具體 IP,port=3306。
- 10055 專項:修改註冊表
TcpTimedWaitDelay 為 30~60 秒,減少 TIME_WAIT 佔用。
Linux 服務器
- 服務狀態:
systemctl status mysqld 或 service mysql status。
- 端口監聽:
ss -lntp | grep 3306。
- 防火牆:
# iptables
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
# firewalld
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
- SELinux:
setsebool -P mysql_connect_any 1 或設置端口標簽。
- 配置文件:
/etc/my.cnf [mysqld] 區段 bind-address=0.0.0.0。
應用層優化預防 10055
- 使用連接池,避免頻繁建立/銷毀連接。
- 將
mysql_connect() 改為 mysql_pconnect()(長連接),注意配合 wait_timeout 設置。
- 限制單 IP 並發連接數(Nginx
limit_conn、應用層限流)。
- 代碼層面:嚴禁死循環重試、高頻輪詢。
MySQL 服務端參數調優
[mysqld]
max_connections = 1000 # 根據內存調整
wait_timeout = 60 # 空閒連接回收
interactive_timeout = 60
thread_cache_size = 64 # 緩存線程減少創建開銷
back_log = 100 # 監聽隊列長度