«

MySQL查看并修改最大连接数max_connections

时间:2026-11-14 07:17     作者:emer     分类: MySQL


前言

高并发时报 Too many connections,是当前连接数达到了 max_connections 上限。这个参数控制 MySQL 同时接受的连接数量,临时改和永久改方式不同。本文讲解查看当前值与使用量、临时调大、写入配置永久生效、合理设置的方法。

操作步骤

1. 查看当前最大连接数

SHOW VARIABLES LIKE 'max_connections';

2. 查看当前已用连接和上限

SHOW STATUS LIKE 'Threads_connected';
SHOW STATUS LIKE 'Max_used_connections';

3. 临时调大(重启失效)

SET GLOBAL max_connections = 1000;

4. 永久写入配置

编辑 my.cnf:

[mysqld]
max_connections = 1000

重启生效:

systemctl restart mysqld

5. 查看连接占用情况

SHOW PROCESSLIST;

6. 合理评估

每连接占用内存,max_connections 不是越大越好,结合内存计算。

常见坑

  1. 只 SET GLOBAL 不改 my.cnf,重启后回到默认值。
  2. 盲目调大到上万,内存不够导致 OOM。
  3. 连接数被占满多是连接泄漏,光调大不解决根因。
  4. 应用连接池配置超过数据库上限,反复拒绝连接。
  5. 重启 MySQL 中断现有连接,线上低峰操作。
  6. max_user_connections 限制单用户连接,别混淆。
  7. 监控 Threads_connected 趋势再决定数值。

总结

max_connections 用 SHOW VARIABLES 查看,SET GLOBAL 临时调,my.cnf 永久写。调大前看 Threads_connected 历史和服务器内存,优先排查连接泄漏。应用连接池上限要低于数据库上限,避免频繁被拒。

遇到问题加QQ23979811 协助处理

标签: MySQL 连接数 max_connections 参数