由于mysql默认8小时连接无访问,就会断开.为此查了一下资料,有同种比较简单的解决方案:

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

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

修改 /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);//循环执行

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄