萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 最大連接數修改指南:動態調整、配置文件持久化與 Linux 服務腳本方案

查看當前最大連接數

SHOW VARIABLES LIKE 'max_connections';
-- 默認 151 (5.7+) 或 100 (舊版),上限 16384

方案一:運行時動態調整 (即時生效、重啟失效)

SET GLOBAL max_connections = 1000;
SHOW VARIABLES LIKE 'max_connections';  -- 驗證

適用:臨時突發流量、無重啟權限場景。

方案二:配置文件持久化 (推薦生產)

[mysqld]
max_connections = 1000

# 伴隨參數建議同步調大
open_files_limit = 65535
table_open_cache = 4000
innodb_open_files = 4000

重啟生效:systemctl restart mysqld

方案三:Linux 服務腳本參數傳遞 (舊版/特殊部署)

編輯 /usr/local/mysql/bin/mysqld_safe,在 mysqld 啟動行追加:

-O max_connections=1500

⚠️ MySQL 5.7+ -O 參數已棄用,**強烈建議用方案二**。

連接數擴容必備配套調優

系統級限制同步修改

# /etc/security/limits.conf
mysql soft nofile 65535
mysql hard nofile 65535

# /etc/sysctl.conf
fs.file-max = 1000000

# 立即生效
ulimit -n 65535
sysctl -p

監控與告警

# 當前連接數
SHOW STATUS LIKE 'Threads_connected';
# 歷史峰值
SHOW STATUS LIKE 'Max_used_connections';
# 使用率
Max_used_connections / max_connections * 100%

建議告警閾值:使用率 > 70% 擴容,> 85% 緊急擴容。

總結

  1. 優先 my.cnf + 重啟 持久化
  2. 同步調大文件句柄、表緩存、線程緩存
  3. 系統限制 ulimit 必須到位
  4. 監控使用率,預留 30% 余量
copyright © 萬盛學電腦網 all rights reserved
參數建議值說明
open_files_limit65535系統文件句柄上限,需 ulimit -n 配合
table_open_cache4000+表緩存,避免頻繁打開關閉
innodb_open_files4000+InnoDB 表句柄緩存
thread_cache_size100+線程緩存,減少創建銷毀開銷
back_log200+監聽隊列,應對突發連接