8小时空闲后连连失效的消除

出于mysql私下认可8小时接二连三无访谈,就能够断开.为此查了一晃素材,有同种相比较轻易的减轻方案:

mysql 8小时空闲后连连失效的解决,mysql8钟头

查了一晃开掘应用程序和mysql数据库创设连接,借使超越8小时应用程序不去拜望数据库,数据库就断掉连接
。那时再次拜会就能抛出十三分。

有关mysql自动断开的标题钻探结果如下,

1、在融洽的程序中插入定期访谈数据库的措施,比如利用Timer,Quartz只怕spring中简易Quartz。

2、在mysql中有连锁参数设定,当数据库连接空闲一定时间后,服务器就能断开等待超时的连日:
连锁参数

mysql> show variables like '%timeout%';
+-----------------------------+----------+
| Variable_name               | Value    |
+-----------------------------+----------+
| connect_timeout             | 10       |
| delayed_insert_timeout      | 300      |
| innodb_flush_log_at_timeout | 1        |
| innodb_lock_wait_timeout    | 50       |
| innodb_rollback_on_timeout  | OFF      |
| interactive_timeout         | 28800    |
| lock_wait_timeout           | 31536000 |
| net_read_timeout            | 30       |
| net_write_timeout           | 60       |
| rpl_stop_slave_timeout      | 31536000 |
| slave_net_timeout           | 3600     |
| wait_timeout                | 28800    |
+-----------------------------+----------+
12 rows in set

 

同期,interactive_timeout,wait_timeout 这多少个参数唯有三个起效果。

究竟是哪个参数起作用,和客户连接时钦定的接连参数相关,缺省景况下是应用wait_timeout。

本人在布署文件元帅wait_timeout修改后在mysql中查寻到依然不起作用,于是将那七个参数都修改了,再一次询问wait_timeout的值后才显示修改后的。

2、修改参数
那五个参数的私下认可值是8时辰(60*60*8=28800)。测量试验过将那四个参数改为0,系统活动将以此值设置为1。约等于说,不可能将该值设置为永世。
将那2个参数设置为24钟头(60*60*24=86400)。
set interactive_timeout=86400;
set wait_timeout=86400;

也能够修改my.cof,修改后重起mysql
张开/etc/my.cnf,在性质组mysqld上边加多参数如下:
[mysqld]
interactive_timeout=28800000
wait_timeout=28800000

若是一段时间内未有数据库访谈则mysql本人将割裂连接,之后拜望java访谈连接池时对数据库的数据通道早已关闭了

8钟头空闲后连连失效的化解,mysql8小时查了弹指间开掘应用程序和mysql数据库建构连接,假设当先8时辰应用程序不去访谈数据库,数据…

  1. 增加 MySQL 的 wait_timeout 属性的值。 

修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中装置: 
# Set a connection to wait 8hours in idle status.  wait_timeout
=86400 

将那2个参数设置为24钟头(60*60*24=604800)即可。  set
interactive_timeout=604800;  set wait_timeout=604800; 

但依旧并不周全,一旦超过那几个时辰从没连接,依然会报错.为此笔者布置了第两种方案,幸免超时,以期终极解决

发表评论

电子邮件地址不会被公开。 必填项已用*标注