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

調大 MySQL 最大連接數:修改 mysqld_safe 啟動參數

     編輯:MySQL 資料庫相關知識

默認限制與現狀

  • 默認 max_connections = 100(含 1 個保留給 SUPER 用戶)
  • 高併發應用極易觸發 Too many connections 錯誤

修改方法(舊版本 mysqld_safe 腳本方式)

  1. 定位腳本:whereis mysqld_safe → 通常在 /usr/local/mysql/bin/mysqld_safe
  2. 編輯腳本,找到啟動 mysqld 的行(通常有兩行,分別針對不同情況)
  3. 在參數後追加:--max-connections=500(根據業務評估)
# 修改前
$MYSQLD --defaults-file=/etc/my.cnf ...

# 修改後
$MYSQLD --defaults-file=/etc/my.cnf --max-connections=500 ...

現代最佳實踐:配置文件法(推薦)

[mysqld]
max_connections = 1000
# 配套調大
open_files_limit = 65535
table_open_cache = 4000
thread_cache_size = 100

修改 /etc/my.cnf 後重啟服務生效,無需改動啟動腳本,便於版本控制與自動化部署。

關聯參數聯動調整

參數建議值說明
max_connections應用峰值 * 1.2~1.5核心上限
open_files_limit>= max_connections * 5文件描述符,需 OS ulimit -n 支持
table_open_cache>= max_connections * 2表緩存,減少打開/關閉開銷
thread_cache_size100~200線程複用,降低創建銷毀開銷
back_log50~100監聽隊列,應對連接風暴

監控與告警

-- 當前連接數
SHOW STATUS LIKE 'Threads_connected';
-- 歷史峰值
SHOW STATUS LIKE 'Max_used_connections';
-- 使用率
SELECT (Threads_connected / @@max_connections) * 100 AS usage_pct;

建議告警閾值:使用率 > 80% 持續 5 分鐘觸發擴容或限流。

總結

調大 max_connections 需配套調整文件描述符、表緩存、線程池等參數,並建立監控體系。現代部署請直接修改 my.cnf 而非啟動腳本,實現配置即代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved