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

2次阅读

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

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

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.cnfwindows 为 my.ini),在 [mysqld] 段落下添加或修改:

max_connections = 500

保存后重启 MySQL 服务生效:
systemctl restart mysqldcentos/RHEL)
sudo service mysql restartubuntu/debian

⚠️ 注意:设得过高会显著增加内存占用(每个连接约占用 256KB–2MB 内存,取决于排序缓冲、临时表等配置),建议按公式粗略估算:
总内存 × 70% ÷ 单连接平均内存 ≈ 合理上限

配合优化效果更佳

  • 应用端启用连接池(如 HikariCP、Druid),控制最大活跃连接数,避免瞬时打满
  • 检查并缩短 wait_timeoutinteractive_timeout(默认 28800 秒),及时释放空闲连接
  • 监控连接状态:SHOW PROCEsslIST; 可识别长事务或挂起连接,辅助定位泄漏点
站长
版权声明:本站原创文章,由 站长 2025-12-22发表,共计1071字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources