摘要:interactive_timeout和wait_timeout参数对sleep连接的影响

interactive_timeout

参数含义:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。
参数默认值:28800秒(8小时)
官网文档:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_interactive_timeout

wait_timeout

参数含义:服务器关闭非交互连接之前等待活动的秒数。
在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。
参数默认值:28800秒(8小时)
官网文档:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout

sleep连接

参数含义:指processlist中Command类型为sleep的线程(线程正在等待客户端发送一个新的语句)
官网文档:https://dev.mysql.com/doc/refman/5.6/en/show-processlist.html
https://dev.mysql.com/doc/refman/5.6/en/thread-commands.html中介绍Sleep的含义是:The thread is waiting for the client to send a new statement to it.

max_connections

参数含义:最大允许客户端同时连接的数量。当客户端连接数超过该值的时候就会报错:Too many connections!
官网文档:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_max_connections

max_user_connections

参数含义:允许任何给定的MySQL用户帐户的最大并发连接数。默认的值为0,意味着“没有限制”。
官网文档:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_max_user_connections

以上参数对连接数的影响

MySQL所支持的最大连接数是有上限的,由参数max_connections控制。因为每个连接的建立都会消耗内存,因此我们希望客户端在连接到MySQL处理完相应的操作后就断开连接并释放占用的内存。如果你的MySQL Server有大量的闲置连接,他们不仅会白白消耗内存,而且如果连接一直在累加而不断开,最终肯定会达到MySQL Server的连接上限数,这会报’too many connections’的错误。对于wait_timeout的值设定,应该根据系统的运行情况来判断。在系统运行一段时间后,可以通过show processlist命令查看当前系统的连接状态,如果发现有大量的sleep状态的连接进程,则说明该参数设置的过大,可以进行适当的调整小些。

调整参数

调整前:

[root@mysql_43 ~]# lxsql 3306 variables 'timeout'
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 5 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 31536000 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 3600 |
| thread_pool_idle_timeout | 60 |
| wait_timeout | 31536000 |
+-----------------------------+----------+
[root@mysql_43 ~]# lxsql 3306 connect
+-------------+---------+----------+
| USER | command | COUNT(*) |
+-------------+---------+----------+
| rouser | Sleep | 124 |
| system user | Connect | 2 |
| root | Sleep | 1 |
| root | Query | 1 |
+-------------+---------+----------+

调整命令

mysql> set global interactive_timeout=600;set global wait_timeout=600;
记得修改配置文件:以防下次实例重启后恢复旧值
[root@mysql_43 ~]# sed -i 's/wait_timeout=31536000/wait_timeout=600/g;s/interactive_timeout=31536000/interactive_timeout=600/g' /opt/mysql/my.cnf
[root@mysql_43 ~]# cat /opt/mysql/my.cnf|grep "timeout"
wait_timeout=600
interactive_timeout=600

看看是否调整成功:

[root@mysql_43 ~]# xlsql 3306 variables 'timeout'
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 5 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 600 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 3600 |
| thread_pool_idle_timeout | 60 |
| wait_timeout | 600 |
+-----------------------------+----------

mysql sleep连接太多怎么办的更多相关文章

  1. PAIP.MYSQL SLEEP 连接太多解决

    PAIP.MYSQL SLEEP 连接太多解决 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.n ...

  2. 【个人笔记】《知了堂》mysql表连接

    为什么使用表连接 什么是表连接? 如果数据来自多个表,那么可以采用链接查询的方式来实现.因此表连接就是多个表连接合在一起实现查询效果 表连接的原理 表连接采用的是笛卡尔乘积,称之为横向连接. 笛卡尔乘 ...

  3. C Mysql API连接Mysql

    最近都在查看MYsql C API文档,也遇到了很多问题,下面来简单的做一个总结. mysql多线程问题 mysql多线程处理不好,经常会发生coredump,见使用Mysql出core一文. 单线程 ...

  4. mysql和连接相关的timeout

    MySQL和连接相关的timeout 今天同事问为什么查询mysql库时, 在数据量比较大时,会话总断.刚开始以为是mysql的和连接有关timeout的问题,结果是网络的不稳定的原因. 下面总结下和 ...

  5. 解决MySQL建立连接问题,快速回收复用TCP的TIME_WAIT

    最近同事遇到一个问题,使用python开发的工具在执行的时候无法和MySQL建立连接,其最直接的现象就是满篇的TIME_WAIT,最后通过调整tcp_timestamps参数问题得以解决,再次记录一下 ...

  6. 对于MySQL远程连接中出现的一个问题总结

    2021年9月3日更新补充 (真的心累,本来是个小问题,但是网上帖子都基本差不多,基本都是相同的操作,导致搜了半个多小时才解决) 一.首先为什么要重新发一次呢,因为我发现上次写的这个记录是不完善甚至是 ...

  7. mysql交互式连接&非交互式连接

    交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议. 非交互式操作:就是你在你的项目中进行程序调用.比如一边是tom ...

  8. Mysql的连接状态

    对应mysql的连接,任何时刻都有一个状态.表示mysql当前正在做什么. command里面的状态: sleep:线程正在等待客户发送新的请求. query:正在执行查询或者正在将结果发送客户端 这 ...

  9. mysql远程连接命令

    mysql远程连接命令   一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u ...

随机推荐

  1. Ubuntu 查看本机的ip

    打开终端中执行:ifconfig -a命令即可,如下图所示白色背景信息即是. 说明: enp0s3 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址 ...

  2. Android之从Browser中打开本地的应用程序&微信检测是否有对应app

    在对应的应用程序的AndroidManifest.xml中配置: <activity android:name=".ui.TabHostActivity" android:w ...

  3. Objective-C:ARC自动释放对象内存

    ARC是cocoa系统帮你完成对象内存释放的引用计数机制 .h文件 // Person.h // 01-ARC // // Created by ma c on 15/8/13. // Copyrig ...

  4. Tengine zabbix 监控

    Tengine 配置 在http 段下新增以下配置 req_status_zone server_stat "$host" 3M; server { listen 9008; lo ...

  5. 第二章 mybatis使用注解实现in查询(mysql)

    mybatis实现in查询,两种方法: xml形式(推荐) 注解方式(个人喜欢注解,但是in场景可能不太适合注解) 代码: @Select("<script>" + & ...

  6. [置顶] IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)

    首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...

  7. Cognos利用DMR与文本对象设计中国式报表

    场景:详细对于接触Cognos的人来说,简单的拖拉报表.交叉表这个工作大家都可以完成,下面我们就来实现一下类似下面的效果. 下面简单的说一下实现过程: 利用Framework Manager创建DMR ...

  8. simple-libfm-example-part1

    原文:https://thierrysilbermann.wordpress.com/2015/02/11/simple-libfm-example-part1/ I often get email ...

  9. objective-c 字符串基本操作

    .定义一个字符串a, 截取a 的某一个部分,复制给b, b必须是int型 NSString *a = @"1.2.30"; ,)] intValue]; NSLog(@" ...

  10. WebService 之 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。

    在使用 WCF 中,遇到如下问题: 已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性. 问题说明: 客户端调用 ...