求大神 怎么限制超时语句?
 wait_timeout    interactive_timeout      都设置为300秒了
为啥还有好多查询语句 过了5分钟 甚至有一小时的
求大神给指点一二mysql> SHOW GLOBAL VARIABLES LIKE '%TIMEOUT%';  
+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| connect_timeout            | 10       |
| delayed_insert_timeout     | 300      |
| innodb_lock_wait_timeout   | 120      |
| innodb_rollback_on_timeout | OFF      |
| interactive_timeout        | 300      |
| lock_wait_timeout          | 31536000 |
| net_read_timeout           | 30       |
| net_write_timeout          | 60       |
| slave_net_timeout          | 3600     |
| wait_timeout               | 300      |
+----------------------------+----------+

解决方案 »

  1.   

    这是对空闲你连接的断开时间可以定时检查processlist表  对超过某些时间的sql按照id kill掉
      

  2.   

    为啥还有好多查询语句 过了5分钟 甚至有一小时的

    你这个是慢查询吧.跟idle connection 没有什么关系.
    你设定的两个timeout还是起作用的.超时的sql语句,这个功能要到MySQL5.7.4里头才具备:
    http://mysqlserverteam.com/server-side-select-statement-timeouts/
    A time limit for any SELECT statement run against a MySQL instance can be set by specifying a timeout value in milliseconds for the GLOBAL system variable max_statement_time.For example:
    SET GLOBAL MAX_STATEMENT_TIME=1000;如果是低版本,你可以按照楼上的说法去试一试.