生产服务器上如何正确配置MySQL的max_connections参数?

雨婷小哥_8044

雨婷小哥_8044

2026-10-29

495人浏览

原创

真实连接压力看Threads_running而非Threads_connected;Threads_connected反映当前总连接数(含空闲),Threads_running才是正在执行SQL的线程数,Max_used_connections记录历史峰值,三者结合才能准确评估压力。

生产服务器上如何正确配置mysql的max_connections参数?

别直接改配置文件就重启,先看真实连接压力在哪——Max_used_connections 接近 max_connections 才说明真要扩容;如果 Threads_connected 高但 Threads_running 很低,大概率是应用没配好连接池或 wait_timeout 太大。

怎么看当前连接是不是真忙?

只查 SHOW VARIABLES LIKE 'max_connections' 没用,得盯三个状态值:

  • Threads_connected:当前挂着的连接总数(含 Sleep)
  • Threads_running:此刻正在执行 SQL 的线程数(这才是真实并发压力)
  • Max_used_connections:自上次启动以来的历史峰值

常见错误现象:Too many connections 报错,但 SHOW PROCESSLIST 里全是 Sleep 状态、Time 列几百上千秒——这说明连接没释放,不是并发高,是空闲连接卡着不走。

怎么算一个安全又够用的值?

按内存估算比拍脑袋靠谱得多。每个连接至少吃掉 256KB~4MB 内存(取决于 sort_buffer_size、read_buffer_size 等),16GB 内存服务器保守按每连接 1MB 算,理论硬上限约 10000,但生产环境不建议碰这个数。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • 小内存机器(≤4GB):设 ≤500
  • 常规生产服务器(8–16GB):从 500–1000 起步,观察 1–2 天监控再微调
  • 若 Max_used_connections 持续在 780 左右,可设为 1000(留 20% 余量);若冲到 950,优先查应用层连接泄漏,而不是直接拉到 1200
  • 必须同步检查系统级限制:ulimit -n 要 ≥ max_connections × 2,否则 MySQL 启动时会静默降级,日志里可能只写 Could not increase number of max_open_files

改完要不要重启?两种方式行为完全不同

动态改和永久改不是“选哪个更方便”,而是“哪个更可控”:

  • 临时改:SET GLOBAL max_connections = 1000 —— 立即生效,但 MySQL 重启后回退;适合测试环境快速验证,或应急扩容几小时
  • 永久改:在 /etc/my.cnf 的 [mysqld] 段加 max_connections = 1000,然后 systemctl restart mysqld —— 生产环境唯一推荐方式,避免配置漂移或权限失败(某些旧版本 SET GLOBAL 可能因插件或权限被拒绝)
  • 注意:max_connections 上限是 16384,超过也按 16384 算,别设 20000

为什么调了 max_connections 还是连不上?

最常漏掉的点,往往比参数本身还关键:

  • wait_timeout 和 interactive_timeout 默认是 28800 秒(8 小时),连接池没配好时,大量空闲连接长期占坑,max_connections 再大也白搭
  • 应用没启用连接池(比如裸用 mysql.connect()),每次请求新建连接,很快耗尽限额
  • 没配 thread_cache_size,连接频繁创建销毁,CPU 毛刺明显,Threads_created 持续上涨
  • skip_name_resolve = ON 没开,DNS 反查失败会导致新连接卡在 Connecting to localhost 几秒甚至十几秒,看起来像连接慢或连不上

真正难的不是把数字调大,而是让每个连接进来之后能快速干活、干完就走、不卡位、不抢资源。很多线上连接问题,根子不在数据库配置,而在应用代码里少关了一个 Connection,或多开了一个没加 LIMIT 的全表查询。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3232

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1056

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

949

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

494

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2976

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5572

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

867

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 193人学习