iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql中Sleep进程连接数过多问题解决
  • 760
分享到

Mysql中Sleep进程连接数过多问题解决

摘要

连接数查看进入Mysql命令行,输入“show processlist;”命令后,Command列出现一大堆Sleep睡眠状态的连接进程。如下图:mysql连接进程Sleep睡眠状态过多将影响Mysql系统资源,主要是CPU、内存。超过配置


	Mysql中Sleep进程连接数过多问题解决
[数据库教程]

  • 连接数查看
    进入Mysql命令行,输入“show processlist;”命令后,Command列出现一大堆Sleep睡眠状态的连接进程。如下图:
    技术图片
    mysql连接进程Sleep睡眠状态过多将影响Mysql系统资源,主要是CPU、内存。超过配置的最大连接数,新的客户端连接将无法连接,mysql将无法提供服务,WEB系统无法访问、崩塌。
  • 造成连接数过多原因
    1)、常见是程序中没有关闭DB连接,客户端在退出前没有调用mysql_close()函数。这是写程序的疏忽。
    2)、DB查询复杂,优化不够,造成查询耗时长。
    3)、使用过多持久连接。不适合高并发场景系统中。
  • 解决方法
    批量删除 sleep 进程状态的连接数。
    1)、一种直接在MySQL命令控制台操作:
    mysql> show processlist;
    mysql> SELECT concat(‘KILL ‘,id,‘;‘) FROM information_schema.processlist WHERE user=‘user1‘;
    mysql> select concat(‘KILL ‘,id,‘;‘) from information_schema.processlist where user=‘user1‘ into outfile ‘/tmp/a.txt‘;
    mysql> source /tmp/a.txt;

    其中上面user1用户是“show processlist;” 命令下,User列对应最多的Sleep进程连接状态的用户。
    注:如上面导出为指定文件路径报“ERROR 1290 (HY000): The MySQL Server is running with the --secure-file-priv option so it cannot execute this statement”错误。
    技术图片
    是由于MySQL在文件的导入、导出有个默认的文件路径。通过“show variables like ‘%secure%‘;”命令查看默认导入、导出文件路径。
    技术图片
    从上面可看出默认路径为“/var/lib/mysql-files/”;所以改下导出文件路径:
    技术图片
    然后在执行“source /var/lib/mysql-files/a.txt;”命令,接下来是出现一堆“Query OK, 0 rows affected (0.00 sec)”,执行成功。
    2)、另一种是写shell脚步方法,配合设置cron定时任务

    #!/bin/sh
    while :
    do
    sleep_num=`mysqladmin processlist -u user -ppassword -h 10.10.10.100 | grep -ie sleep |wc -l`
    date=`date +%Y%m%d[%H:%M:%S]`
    echo $sleep_num
    if [ "$sleep_num" -gt 100 ];then
        for i in `mysqladmin processlist -u user -ppassword -h 10.10.10.100 | grep -ie sleep | awk ‘{print $2}‘`
        do
            mysqladmin -u user -ppassword -h 10.10.10.100  kill $i
        done
    echo "sleep is too many more than 100, killed it " >> /tmp/sleep.log
    echo "$date : $sleep_num" >> /tmp/sleep.log
    fi
    sleep 1
    done

    接下来设置个cron定时任务,设置多长时间跑一次。

  • 修改配置
    上面方法比较繁琐,写脚本、配置定时任务,而且这种以暴制暴方法可能会导致数据奔溃,不可取。更好的方法应该是让MySQL自己决定这些Sleep睡眠状态连接的命运,实施会更简单,有效。
    MySQL配置项中有一项 wait_timeout 配置项,表示Sleep睡眠状态连接数超时时长。超过设置的时长,MySQL自动终止连接。
    输入“show global variables like ‘%timeout%‘;” 命令查看:
    技术图片
    当前关于睡眠状态连接数超时时长,默认超时时长 wait_timeout 为28800秒,还有一个相关的 interactive_timeout 配置。
    wait_timeout 与 interactive_timeout 区别在于 wait_timeout 是MySQL服务器关闭非交互连接之前等待的秒数, interactive_timeout 是MySQL服务器关闭交互式连接前等待的秒数。
    什么是交互连接,什么是非交互连接?
    通过MySQL客户端连接DB的就是交互式的会话连接,通过JDBC程序连接DB的就是非交互式的会话连接。
    接下来修改 wait_timeout、interactive_timeout 全局变量。要配合这两块一起修改才有效。设置DB连接超时时长为3600秒,如下:
    set global wait_timeout=3600;
    set global interactive_timeout=3600;
  • Mysql中Sleep进程连接数过多问题解决

    原文地址:https://blog.51cto.com/10874766/2514570

    您可能感兴趣的文档:

    --结束END--

    本文标题: Mysql中Sleep进程连接数过多问题解决

    本文链接: https://www.lsjlt.com/news/7609.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • mysql sleep线程过多怎么解决
      当MySQL的sleep线程过多时,可能会导致数据库性能下降。可以通过以下方法来解决: 优化查询:检查并优化慢查询,尽量减少查询...
      99+
      2024-04-09
      mysql
    • mysql连接数过多怎么解决
      当MySQL连接数过多时,可以采取以下几种方法来解决:1. 优化查询语句:检查查询语句的性能,确保索引被正确使用,避免不必要的全表扫...
      99+
      2023-09-27
      mysql
    • 怎么解决mysql连接过慢的问题
      这篇文章主要讲解了“怎么解决mysql连接过慢的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决mysql连接过慢的问题”吧! 3种解决方法(前...
      99+
      2024-04-02
    • 如何解决MySQL报错:连接数过多
      要解决MySQL报错连接数过多,可以尝试以下几种方法:1. 增加最大连接数:可以通过修改MySQL配置文件中的max_connect...
      99+
      2023-10-20
      MySQL
    • 如何解决不能通过mysql.sock连接MySQL问题
      这篇文章主要为大家展示了“如何解决不能通过mysql.sock连接MySQL问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决不能通过mysql.soc...
      99+
      2024-04-02
    • kafka连接数过多如何解决
      当Kafka连接数过多时,可以采取以下措施来解决问题:1. 调整Kafka的最大连接数限制:修改Kafka的配置文件,增加`max....
      99+
      2023-09-14
      kafka
    • 超出MySQL最大连接数问题及解决
      目录超出mysql最大连接数问题查看最大连接数修改最大连接数MySQL最大连接数,TimeOut配置MySQL连接数配置Mysql的连接线程池Mysql TimeOut配置总结超出MySQL最大连接数问题 如果遇到MyS...
      99+
      2023-05-15
      MySQL最大连接数 MySQL连接数 超出MySQL最大连接数
    • MySql中的连接查询问题怎么解决
      本文小编为大家详细介绍“MySql中的连接查询问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySql中的连接查询问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。连接查询当进行多表连接查询...
      99+
      2023-07-05
    • Too many connections - 如何解决MySQL报错:连接数过多
      引言:MySQL是一个广泛使用的关系型数据库管理系统,许多网站和应用程序都依赖于MySQL来存储和管理数据。然而,在高负载环境下,MySQL经常会遇到连接数过多的问题。这会导致应用程序无法连接到数据库,从而导致服务中断和性能下降。在本文中,...
      99+
      2023-10-21
      MySQL 解决方法 连接数
    • 如何解决无法远程连接mysql的问题
      这篇文章给大家分享的是有关如何解决无法远程连接mysql的问题的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。无法远程连接mysql的解决方法:1、登录mysql;2、执行【gra...
      99+
      2024-04-02
    • 解决无法远程连接MySQL服务的问题
      ① 设置MySQL中root用户的权限: [root@nginx-dev etc]# mysql -uroot -pRoot@123mysql> use mysql;mysql> GRANT ALL PRIVILEGES ON *.* TO...
      99+
      2023-08-30
      服务器 mysql android
    • Mysql连接无效(invalidconnection)问题及解决
      目录Mysql连接无效invalid connection解决的方案Mysql远程连接不生效总结Mysql连接无效invalid connection 一般连接数据库的代码库都有实现...
      99+
      2023-02-16
      Mysql连接无效 Mysql invalid connection Mysql连接
    • 如何解决MySql远程连接的设置问题
      这篇文章将为大家详细讲解有关如何解决MySql远程连接的设置问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 如果使用 web 和数据库不在同一台服务器上,MySQL...
      99+
      2024-04-02
    • Docker部署mysql远程连接 解决2003的问题
      连接MySQL 这里我使用navicat远程连接,连接MySQL前需要防火墙开放端口或者关闭防火墙。 开放端口 firewall-cmd --add-port=3306/tcp ...
      99+
      2024-04-02
    • Navicat连接不上MySQL的问题解决
      目录一、查看端口3306是否一样二、查看服务是否启动mysql密码忘记怎么办?总结解决Navicat连接不上Mysql的方法 一、查看端口3306是否一样 1、先登录上mysql,可以直接登录,或者cmd,从命令行那里进...
      99+
      2023-02-17
      navicat连接不上mysql navicat连接mysql报错 navicat连接不上数据库
    • 解决Qt6连接MySQL的驱动问题
      目录 1. 引出问题2. 分析问题3. 解决问题3.1 获取编译所需材料3.1.1准备生成Mysql驱动文件的工程3.1.2 准备Mysql相关的头、库文件 3.2 开始进行编译3.3 复制文件(重要)3.4 测试连接 4...
      99+
      2023-08-19
      mysql 数据库 qt c++
    • 【问题小记】解决Linux下php-fpm进程过多耗尽内存问题
      最近一段时间,发现经常性的服务器内存耗尽,导致mysql服务down掉,一开始以为是mysql跑的太久占用较多内存,后来认真排查了一下原来是是PHP-FPM进程过多导致的。 今天一看内存又达到了82%,预计不会太久服务又会挂掉,于是进行了排...
      99+
      2023-09-01
      php linux 服务器
    • MySQL连接数太多如何解决
      MySQL连接数太多如何解决,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MySQL数据库的默认最大连接数是:100,对于多人开发的单体项...
      99+
      2024-04-02
    • imazing请通过usb连接问题怎么解决
      本篇内容主要讲解“imazing请通过usb连接问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“imazing请通过usb连接问题怎么解决”吧!imazing请通过usb连接解决方法我...
      99+
      2023-07-01
    • mysql数据库连接过多出现错误怎么解决
      这篇文章主要介绍“mysql数据库连接过多出现错误怎么解决”,在日常操作中,相信很多人在mysql数据库连接过多出现错误怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作