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

MySQL 修改最大連接數兩種方式:運行時動態調整 vs 配置文件持久化

     編輯:MySQL 資料庫相關知識

報錯背景

ERROR 1040 (HY000): Too many connections,默認 max_connections=151(5.7+),上限 16384。

方式一:運行時動態生效(無需重啟)

SET GLOBAL max_connections=1000;
  • 需 SUPER 權限(root 帳號)。
  • 最小值 1,立即生效。
  • 缺點:重啟失效,回歸配置文件值。

方式二:修改配置文件持久化(需重啟)

vim /etc/my.cnf
# [mysqld] 區段添加/修改
max_connections=1000
# 重啟服務
systemctl restart mysqld
  • 優點:重啟不變,生產環境推薦。
  • 缺點:需重啟服務,有秒級不可用窗口。

差異對比

維度動態 SET GLOBAL配置文件 + 重啟
生效速度即時重啟後
持久性重啟失效永久
適用場景緊急臨時擴容容量規劃、長期生效

max_connections 設多大合適?

綜合考量:

  • 作業系統線程上限(Windows ~2048,Linux 更高)。
  • 服務器內存:每連接佔用 sort_buffer_size + read_buffer_size + join_buffer_size + thread_stack 等,粗估 2–10 MB/連接。
  • 業務峰值併發 + 連接池配置(建議連接池上限 < max_connections)。
  • 響應時間要求:連接過多導致 CPU 上下文切換劇增,反而降低吞吐。

總結

緊急用 SET GLOBAL 救急,長期靠 my.cnf 落地;連接數不是越大越好,需按內存與併發模型科學估算。

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