MySQL 連線數耗盡導致新連線被拒絕,常見於長連線未釋放、連線池洩漏或攻擊。
my.cnf [mysqld] 區段:[mysqld]
port = 3306
socket = /tmp/mysql.sock
wait_timeout = 500000
interactive_timeout = 500000
wait_timeout 控制非互動連線閒置斷開時間(預設 28800 秒 = 8 小時),設大可減少頻繁重連開銷,但也可能累積殭屍連線;建議依業務特性設定 1~2 天(172800 秒)較為平衡。修改後重啟 MySQL 生效,或啟動時加參數 mysqld -O wait_timeout=500000。若不生效嘗試重啟主機。
mysql> SHOW VARIABLES LIKE 'wait_timeout';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| wait_timeout | 500000 |
+---------------+--------+
max_connections 與 max_user_connections 限制單用戶佔用。performance_schema 監控連線狀態。