在做连接池的时候,为了让连接更早的被释放掉。而修改my.cnf,
添加 wait_timeout = 600 也就是10分钟后MySQL服务自动断开连接
奇怪的是修改了之后使用 show variables like 'wait_timeout' 依然显示之前的28800
会发现设置好像并没有生效,这是因为单纯使用show variables的话就等同于使用的是show session variables,查询的是会话变量,只有使用show global variables,查询的才是全局变量。
上面重启的方法于正式环境而言 是不可取的 会影响到线上的一个正常的服务。
那么接下来的方法是 通过set方法
set global wait_timeout=10;
show global variables like 'wait_timeout';
即可
超过这个时间,mysql 就终止 select 语句的执行
mysql 5.6 及以后,有语句执行超时时间变量,用于在服务端对 select 语句进行超时时间限制;
mysql 5.6 中,名为: max_statement_time (毫秒)
mysql 5.7 以后,改成: max_execution_time (毫秒)
超过这个时间,mysql 就终止 select 语句的执行,客户端抛异常:
1907: Query execution was interrupted, max_execution_time exceeded.

