• ADADADADAD

    【Mysql】连接数过多,应急处理方法[ mysql数据库 ]

    mysql数据库 时间:2024-12-03 12:13:39

    作者:文/会员上传

    简介:

    一、问题描述 今天突然接到个问题,网页报错:503 Service Temporarily Unavailable。经过查询发现是某个用户的连接超级多,已经将数据库连接占满。处理方案,即时杀掉堵塞的进程,之

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一、问题描述 今天突然接到个问题,网页报错:503 Service Temporarily Unavailable。经过查询发现是某个用户的连接超级多,已经将数据库连接占满。处理方案,即时杀掉堵塞的进程,之后可以扩大max_connections参数。

    二、处理方法1.查询连接情况
      root@localhost > show processlist;
      …...
      1001 rows in set (0.00 sec)
      root@localhost > show variables like '%proces%';
      Empty set (0.00 sec)

    2.检查参数
      root@localhost > show global status like 'Max_used_connections';
      +----------------------+-------+
      | Variable_name | Value |
      +----------------------+-------+
      | Max_used_connections | 1001 |
      +----------------------+-------+
      1 row in set (0.00 sec)

    3.通过命令生成杀进程脚本
      root@localhost > select concat('KILL ',id,';') from information_schema.processlist where user=’sam' into outfile '/tmp/a.txt

    脚本内容如下:
      +------------------------+
      | concat('KILL ',id,';') |
      +------------------------+
      | KILL 31964612; |
      | KILL 31964609; |
      | KILL 31964611; |
      …...
      | KILL 31966619; |
      | KILL 31966620; |
      +------------------------+
      991 rows in set (0.02 sec)
      root@localhost >

    4.执行上面生成的KILL脚本
      root@localhost > source /tmp/a.txt
      Query OK, 0 rows affected (0.00 sec)
      Query OK, 0 rows affected (0.00 sec)
      ……

    5.检查连接状况,恢复正常
      root@localhost > show processlist;

    6.修改Max_used_connections参数(注:记得要修改my.cnf文件,下次重启动后仍然有效)
      mysql> set GLOBAL max_connections=2000;
      Query OK, 0 rows affected (0.00 sec)

      mysql> show variables like '%max_connections%';
      +-----------------+-------+
      | Variable_name | Value |
      +-----------------+-------+
      | max_connections | 2000 |
      +-----------------+-------+
      1 row in set (0.00 sec)


    三、总结Mysql的参数学习之max_connections,一个控制连接数的参数。此问题背后肯定存在着某些问题,不要只是一味地调大参数。后来经过对语句的分析,最终此问题定位为安全部门在做安全测试,导致问题产生。2017年只剩下最后1周了,提前祝大家元旦快乐。Happy every day.
    【Mysql】连接数过多,应急处理方法.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysql方法处理