mysql默认最大连接数为 151,高 并发 易触发“Too many connections”错误;需通过 SHOW VARIABLES 和 SHOW STATUS 查看现状,临时用 SET GLOBAL 修改(需 SUPER 权限),永久修改应编辑 my.cnf/my.ini 中 max_connections 并重启服务,同时配合连接池、超时参数优化及内存估算避免资源耗尽。

MySQL 最大连接数(max_connections)默认通常为 151,对小流量应用够用,但高并发场景下容易出现“Too many connections”错误。调整它需兼顾服务器资源与业务需求,不能盲目设得过高。
查看当前最大连接数和实际使用情况
登录 MySQL 后执行以下命令确认现状:
查看当前设置:SHOW VARIABLES LIKE 'max_connections';
查看当前活跃连接数:SHOW STATUS LIKE 'Threads_connected';
查看历史峰值(重启后清零):SHOW STATUS LIKE 'Threads_created';
该值持续上升说明连接复用不足,可能需配合应用层连接池优化。
临时修改(重启失效)
适用于测试或紧急调整,立即生效但不持久:
- 执行:
SET GLOBAL max_connections = 500; - 注意:需要 SUPER 权限;新连接才能使用新值,已有连接不受影响
- 若提示“Variable ‘max_connections’ is a read only variable”,说明已启用只读模式或 配置文件 锁定,需改 配置文件
永久修改(推荐方式)
编辑 MySQL 配置文件(linux 通常为 /etc/my.cnf 或 /etc/mysql/my.cnf,windows 为 my.ini),在 [mysqld] 段落下添加或修改:
max_connections = 500
保存后重启 MySQL 服务生效:systemctl restart mysqld(centos/RHEL)sudo service mysql restart(ubuntu/debian)
⚠️ 注意:设得过高会显著增加内存占用(每个连接约占用 256KB–2MB 内存,取决于排序缓冲、临时表等配置),建议按公式粗略估算:总内存 × 70% ÷ 单连接平均内存 ≈ 合理上限