当前位置:Gxlcms > 数据库问题 > 网站多sleep连接,mysql连接数不足,导致访问受阻或者不能访问问题解决

网站多sleep连接,mysql连接数不足,导致访问受阻或者不能访问问题解决

时间:2021-07-01 10:21:17 帮助过:3人阅读

解决方法就是设置下面两个参数的值,就是在过期时间后自动清除sleep连接

interactive_timeout:
参数含义:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。
参数默认值:28800秒(8小时)

wait_timeout:
参数含义:服务器关闭非交互连接之前等待活动的秒数。
参数默认值:28800秒(8小时)

如何查看这俩值
show global variables like ‘%timeout%‘

在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。
也就是全局wait_timeout会决定会话(非交互连接)的timeout值;全局interactive_timeout会决定会话(交互连接)的timeout值

那什么是交互和非交互呢?
交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议。
非交互式操作:就是你在你的项目中进行程序调用。比如一边是tomcat web服务器,一边是数据库服务器,两者怎么通信?在java web里,我们通常会选择hibernate或者是jdbc来连接。那么这时候就是非交互式操作。

如何设置这俩值?(记得加global全局(需要root用户下设置),不加默认是session)
set global wait_timeout=60
set global interactive_timeout=65

如上设置,网站测试后是由是65秒才会清楚sleep连接,所以你的站如果有大量的sleep连接,可以调整这个值,时间长短由业务来定,太短会频繁连接,太长占用连接。

那如果反过来
set global wait_timeout=65
set global interactive_timeout=60
打开navicat客户端 使用show variables like ‘wait_timeout‘ 显示的60;
使用show global variables like ‘wait_timeout‘ 显示的65。
还是由interactive_timeout来决定会话的timeout值

网站多sleep连接,mysql连接数不足,导致访问受阻或者不能访问问题解决

标签:

人气教程排行