电玩城打鱼捕鱼-专业24小时上下分

mysql超机遇制,8刻钟空闲后总是失效的减轻

十一月 3rd, 2019  |  电玩城上下分数据库

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

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服务器时,推行show global
variables like ‘wait_timeout’;时,仍是改良前的值。

2.准时访谈数据库,在逾期以内访问mysql,就能够制止mysql断开连接

有三种格局能够变动那个参数的值:

但还是并不圆满,风姿罗曼蒂克旦超越这些时间尚无连接,如故会报错.为此小编设计了第三种方案,制止超时,以期终极解除

interactive_timeout:mysql服务器关闭交互作用式连接早先等待活动的秒数

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

mysql每一次创立叁个socket连接(connect)时,那几个socket都会占用一定内部存款和储蓄器。就算你关闭(close)连接时,并非确实的闭馆,而是处于睡眠(sleep)状态。

 

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect…
Connection id:    3
Current database: *** NONE ***

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

 

出于mysql私下认可8小时一而再无采访,就能够断开.为此查了一下资料,有同种比较容易的应用方案:

然而有的时候须求长日子翻开mysql连接,就需求转移那个参数的值。依照机器的硬件接受合适的参数值。

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


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

语句:set global wait_timeout = 100;实行结果:

 

1.通过说话更动那个参数的值。那中艺术不供给重启mysql,但会先断开所有当前总是,然后再一次连接。

标签:

Your Comments

近期评论

    功能


    网站地图xml地图