首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

徹底解決 MySQL 連線過多錯誤:調大 max_connections 與監控 threads_connected

     編輯:MySQL 資料庫相關知識

核心判斷邏輯

系統無法連線時,關鍵看兩個指標:

  1. max_connections:系統允許最大連線數,可配置。預設 100,上限 16384。
  2. threads_connected:當前活躍連線執行緒數,動態變化。

當 threads_connected == max_connections,新連線被拒,報錯。若程式未妥善處理,用戶見到錯誤頁。

連線池不等於銀彈

連線池可避免頻繁建銷連線開銷,但**無法防止程式 Bug 導致連線洩漏**(未釋放、死鎖等)。若 max_conutions 足大但 threads_connected 持續增長至上限,必須查程式碼。

快速排查步驟

  1. 刷新頁面同時監控 threads_connected 變化。
  2. 若持續增長 → 程式洩漏連線。
  3. 若使用連線池,增長到池上限即停止。

查看與設定命令

-- 進入 mysql 客戶端
SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'threads_connected';

修改 max_conutions(配置檔)

編輯 my.cnf(或 my.ini)[mysqld] 區段:

[mysqld]
port=3306
# ... 其他參數 ...
max_connections=32000

注意:雖寫 32000,實際上限 16384。重啟 MySQL 生效,再用 SHOW VARIABLES 驗證。

補充說明

  • 其他參數(key_buffer、table_cache 等)需依系統實際情況調優,勿照抄。
  • 增大 max_connections 對系統資源消耗增長極小。
  • Windows 用 my.ini 格式稍異,參數同理。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved