首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 最大連線數調大實戰:兩種修改方式詳解

     編輯:MySQL 綜合教學

MySQL 預設最大連線數 100,高併發場景下極易耗盡。本文介紹兩種調大 max_connections 的方法:啟動腳本修改與原始碼重編譯,並說明驗證步驟。

方法一:修改 safe_mysqld 啟動腳本(推薦,無需重編譯)

  1. 編輯 safe_mysqld(通常位於 /usr/bin/ 或 MySQL 安裝目錄 bin/)。
  2. 找到 mysqld 啟動的兩行命令(含 if/else 分支),在 --skip-locking 後追加 -O max_connections=1000。
  3. 範例修改片段:

--- 原始
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR --skip-locking >> $err_log 2>&1
+++ 修改後
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR --skip-locking -O max_connections=1000 >> $err_log 2>&1
  1. 重啟 MySQL 服務:service mysql restart 或 systemctl restart mysqld。
  2. 驗證生效:

mysqladmin -u root -p variables | grep max_connections
# 輸出應顯示 | max_connections | 1000 |

方法二:修改原始碼重新編譯(永久生效,適合自建套件)

  1. 解壓 MySQL 原始碼,進入 sql/ 目錄編輯 mysqld.cc。
  2. 尋找預設值定義行:

{ "max_connections", (long*) &max_connections, 100, 1, 16384, 0, 1 },
  1. 將第三個參數(預設值)從 100 改為 1000:

{ "max_connections", (long*) &max_connections, 1000, 1, 16384, 0, 1 },
  1. 儲存並重新編譯安裝:

./configure && make && make install
  1. 重啟服務並同樣驗證。

關鍵提醒

  • max_connections 上限受限於作業系統檔案描述符限制(ulimit -n)與記憶體大小,盲目設大反而導致 OOM。
  • 生產環境建議搭配連線池、wait_timeout、max_user_connections 綜合調優。
  • 修改配置檔 my.cnf([mysqld] max_connections=1000)是最標準做法,本文兩法適用於無法動態修改配置檔的舊版或受限環境。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved