如何配置mysql最大连接数_mysql连接数基础设置

来源:这里教程网 时间:2026-02-28 20:32:43 作者:

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% ÷ 单连接平均内存 ≈ 合理上限

配合优化效果更佳

应用端启用连接池(如 HikariCP、Druid),控制最大活跃连接数,避免瞬时打满 检查并缩短
wait_timeout
interactive_timeout
(默认 28800 秒),及时释放空闲连接
监控连接状态:
SHOW PROCESSLIST;
可识别长事务或挂起连接,辅助定位泄漏点

相关推荐