您的位置 首页 mysql

mysql wait_timeout (单位秒)

默认数据是
wait_timeout=1800:这个参数设置的是客户端在没有活动时,服务器会等待多长时间后自动断开连接。这里的1800表示1800秒,也就是30分钟。
interactive_timeout=1800:这个参数设置的是交互式客户端在没有活动时,服务器会等待多长时间后自动断开连接。同样,这里的1800表示30分钟。

他们的程序默认是空闲7小时断开连接,这样到了30分钟mysql给你断开连接了,但是程序不知道,然后重新拿这个连接去发请求就会出现数据库断开连接

方案:

让开发把超时时间改到20分钟,比数据库30分钟小。这样就可以了

 

这是数据库的连接请求超时,你们可以执行看下是多少秒

SHOW VARIABLES LIKE 'wait_timeout';
SHOW VARIABLES LIKE 'interactive_timeout';

我这个是8小时

1、mysql连接空闲超时xxx秒,就是wait_timeout(假设30分钟),达到了这个秒数你不向我发请求我就断开连接
2、java的连接池会一次性初始化n个,假设是30个,每隔n分钟检测一次,所有连接池发送一次select 'x'来检测是否还有效,无效我就断开。这个断开是连接池的行为。如果我的这个连接超时是7小时呢?而我数据库超时是30分钟,你拿着n个链接认为7小时才过期,实际数据库30分钟就给你断开了,你并发一高拿了一个已经被数据库断开的连接来用,就会爆异常

 

华为云 天翼云 底座都是openstack

易捷行云和h3c的也是openstack

天翼云现在也用go重写了openstack

那现在容器管理平台 rancher openshift ks 还是有sealos,这几个哪个简单稳定?

 

sealos设计前卫 一般人接受不了

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章