無法連線資料庫時,關鍵檢查兩個數值:
當 threads_connected == max_connections 時,新連線請求被拒絕,未妥善處理錯誤的程式會拋出連線失敗異常。
# 查看最大連線數
mysql> SHOW VARIABLES LIKE 'max_connections';
# 查看當前活動連線
mysql> SHOW STATUS LIKE 'threads_connected';
刷新頁面持續監控 threads_connected 變化:若持續增長至 max_connections,應檢查程式碼連線釋放邏輯;若使用連線池,會停留在池大小上限。
修改 my.cnf(或 Windows my.ini)[mysqld] 區段:
[mysqld]
port=3306
skip-locking
key_buffer=16M
max_allowed_packet=1M
thread_stack=64K
table_cache=4
sort_buffer=64K
net_buffer_length=2K
max_connections=32000 # 實際上限 16384
修改後重啟 MySQL 生效,並驗證 max_connections 變更成功。
my.ini 格式略有不同