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

Linux 下修改 MySQL 5.0 預設最大連接數:mysqld_safe 參數法與原始碼編譯法

     編輯:MySQL 資料庫相關知識

問題背景

預設 max_connections=100,高併發場景頻現 Too many connections。MySQL 5.0 手工編譯版 /etc/my.cnf 設定可能不生效,需從啟動腳本或原始碼入手。

方法一:修改 mysqld_safe 啟動腳本(推薦,熱修改)

  1. 編輯啟動腳本:vi /usr/local/mysql/bin/mysqld_safe
  2. 搜尋 mysqld 啟動行(通常有兩處,對應不同條件分支),在參數末尾加入:
-O max_connections=1500

具體位置範例:

# 第一處
$NOHUP_NICENESS $ledir/$MYSQLD \
$defaults --basedir=$MY_BASEDIR_VERSION \
--datadir=$DATADIR $USER_OPTION \
--pid-file=$pid_file \
--skip-external-locking \
-O max_connections=1500 \
>> $err_log 2>&1

# 第二處(else 分支)
eval "$NOHUP_NICENESS $ledir/$MYSQLD \
$defaults --basedir=$MY_BASEDIR_VERSION \
--datadir=$DATADIR $USER_OPTION \
--pid-file=$pid_file \
--skip-external-locking $args \
-O max_connections=1500 \
>> $err_log 2>&1"
  1. 儲存,重啟服務:/usr/local/mysql/bin/mysqld_safe & 或 service mysql restart。
  2. 驗證:mysqladmin -u root -p variables | grep max_connections → 應顯示 1500。

方法二:修改原始碼重新編譯(永久固化)

  1. 解壓原始碼,編輯 sql/mysqld.cc。
  2. 搜尋 max_connections 定義陣列:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.",
(gpointer) &max_connections, (gpointer) &max_connections,
0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1},
  1. 將預設值 100 改為 1500(第 8 個參數)。
  2. 重新編譯安裝:
./configure --prefix=/usr/local/mysql ...(原配置參數)
make
make install

方法三:my.cnf 配置(標準做法,優先嘗試)

[mysqld]
max_connections = 1500
# 同步調大開啟檔案數限制
open_files_limit = 65535

若 my.cnf 不生效,檢查:

  • 配置檔是否被正確讀取:mysqld --help --verbose | grep -A1 'Default options'
  • 是否有多個 my.cnf 互相覆蓋。
  • 系統 ulimit -n 限制(需在 /etc/security/limits.conf 設定 mysql 用戶)。

配套參數同步調整

參數建議值說明
max_connections1500~3000視記憶體與併發峰值
thread_cache_size100~200減少線程創建開銷
back_log500~1000連接請求隊列長度
open_files_limit65535系統層面開檔數上限
innodb_buffer_pool_size物理記憶體 60~70%核心效能參數

驗證與監控

SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Threads_connected';
SHOW STATUS LIKE 'Max_used_connections';
-- Max_used_connections / max_connections > 85% 考慮擴容

掌握三種修改路徑,靈活應對不同部署模式下的連接數擴容需求。

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