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 不是越大越好,结合内存计算。
常见坑
- 只 SET GLOBAL 不改 my.cnf,重启后回到默认值。
- 盲目调大到上万,内存不够导致 OOM。
- 连接数被占满多是连接泄漏,光调大不解决根因。
- 应用连接池配置超过数据库上限,反复拒绝连接。
- 重启 MySQL 中断现有连接,线上低峰操作。
- max_user_connections 限制单用户连接,别混淆。
- 监控 Threads_connected 趋势再决定数值。
总结
max_connections 用 SHOW VARIABLES 查看,SET GLOBAL 临时调,my.cnf 永久写。调大前看 Threads_connected 历史和服务器内存,优先排查连接泄漏。应用连接池上限要低于数据库上限,避免频繁被拒。
遇到问题加QQ23979811 协助处理
标签: MySQL 连接数 max_connections 参数