MySQL默认最大连接数为151,生产环境需根据资源与负载合理调大;可通过SHOW VARIABLES和SHOW STATUS查看配置与使用情况,支持临时SET GLOBAL或永久修改配置文件,并注意内存占用、配套参数及连接池优化。

MySQL最大连接数默认通常为151,生产环境高并发时容易出现“Too many connections”错误,需根据服务器资源和业务需求合理调大。关键不是盲目设高,而是结合内存、线程开销与实际负载综合调整。
查看当前最大连接数和实际使用情况
登录MySQL后执行以下命令:
- 查看当前设置: SHOW VARIABLES LIKE 'max_connections';
- 查看当前活跃连接数: SHOW STATUS LIKE 'Threads_connected';
- 查看历史峰值连接数(需开启performance_schema或监控): 可查 SHOW STATUS LIKE 'Threads_created'; 辅助判断连接波动趋势
临时修改(重启失效)
适合测试或紧急调整,不写入配置文件:
- 执行命令:SET GLOBAL max_connections = 1000;
- 注意:需要SUPER权限;新连接才能使用该值,已有连接不受影响
- 该值在MySQL服务重启后会恢复为配置文件中的设定
永久修改(推荐方式)
编辑MySQL配置文件(Linux常见为/etc/my.cnf或/etc/mysql/my.cnf,Windows为my.ini),在[mysqld]段下添加或修改:
- max_connections = 1000
- 保存后重启MySQL:systemctl restart mysqld(CentOS/RHEL)或service mysql restart(Ubuntu/Debian)
- 确认生效:SHOW VARIABLES LIKE 'max_connections';
注意事项与优化建议
单纯调高max_connections可能引发新问题,需同步关注:
- 内存占用:每个连接约占用256KB–2MB内存(取决于排序缓冲、临时表等设置),1000连接可能额外消耗几百MB内存
- 配套参数检查:如table_open_cache、sort_buffer_size、read_buffer_size不宜随连接数线性放大,否则易OOM
- 应用层连接池:更有效的方式是用HikariCP、Druid等连接池控制并发,避免频繁创建销毁连接
- 排查异常连接:用SHOW PROCESSLIST;检查长时间Sleep状态的连接,防止连接泄漏










