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

作者:数据库

鉴于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小时应用程序不去拜会数据库,数据...

mysql每一次建设构造一个socket连接(connect)时,这几个socket都会据有一定内部存款和储蓄器。即便你关闭(close)连接时,并非的确的破产,而是处于睡眠(sleep)状态。

但如故并不周详,一旦超过那么些日子不曾连接,依旧会报错.为此笔者设计了第二种方案,幸免超时,以期终极解决

--------------- -------
| Variable_name | Value |
--------------- -------
| wait_timeout  | 28800   |
--------------- -------
1 row in set (0.00 sec)

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

数据库,末段一行表示已经更改成功。

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


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

[mysqlld]

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

interactive_timeout:mysql服务器关闭交互式连接以前等待活动的秒数

 

有二种办法能够更改这一个参数的值:

 

累积如下的设置:

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

注:这么些参数的意义:

2.按时访问数据库,在逾期之内访谈mysql,就能够防止mysql断开连接

wait_timeout = 100

本文由ca88发布,转载请注明来源

关键词: ca88网址