当前位置: 永利皇宫463手机版 > 数据库 > 正文

8小时空闲后连接失效的解决

时间:2019-09-24 11:29来源: 数据库
是因为mysql暗许8小时延续无访问,就能够断开.为此查了须臾间素材,有同种相比较简单的应用方案: mysql 8小时空闲后连连失效的化解,mysql8钟头 查了一晃意识应用程序和mysql数据库建立连

是因为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; 

但照旧并不到家,一旦当先这一个时间从没连接,依然会报错.为此小编布置了第二种方案,制止超时,以期终极化解

2.定期访谈数据库,在逾期之内访谈mysql,就可以制止mysql断开连接

 

var cnt=0;
var conn=function(){
    connection.query('USE '+ db);     //查询MySQL中数据库
    cnt++;
    console.log("Mysql重连接成功! 次数:"+cnt);
}


//conn;
    setInterval(conn, 60*1000);//循环执行

 

编辑: 数据库 本文来源:8小时空闲后连接失效的解决

关键词: