卡拉云技术博客
碰到Can not connect to MySQL server. Too many connections”-mysql错误着实令人抓狂。这基本等于失去了对 MySQL 的控制权。本教程将详细讲解多种处理此错误的方法。

sudo mysql -uroot -p
ERROR 1040 (00000): Too many connections

本教程将分这几个来讲解

  • 此类错误的原因。
  • 如何查看 MySQL 连接状态。
  • 限制超时时间的方法,缩短 sleep 时间,使系统更快回收连接。
  • 修改配置文件中最大连接数的方法,保证连接畅通。
  • 火线救援法,不用重启,不用登录 MySQL,即可修改最大连接数。
  • 提前布局,给 root 预留好连接通道。

由于文章过长,本文仅是摘要,点这里《MySQL 连接数过多的处理方法合集 》查看全文


一. 错误原因

出现 MySQL 连接数过多有多种情况,多数是因为mysql_connect ,没有 mysql_close; 当sleep连接占满最大连接数max_connections时,会导致 Too many connections 错误。

MySQL 默认最大连接数max_connections为 151,其实 MySQL 还给 root 留了多一个通道,真正的最大连接数为max_connections + 1 。但实际工作中因为各种原因,这个 1 也有可能被占用。这时,我们无法通过登录 MySQL 调整参数的方法来处理这个错误。

二. 查看当前 MySQL 连接情况

我们可以使用 SHOW PROCESSLIST; 查看前 100 条连接。

SHOW PROCESSLIST;

也可以使用 SHOW full PROCESSLIST; 查看所有连接。

SHOW full PROCESSLIST;

请添加图片描述上图中 ID 15 的连接 我们可以看到它已经 11388s

>> 有关 MySQL连接数过多的处理方法,点这里继续浏览 <<

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐