由于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);//循环执行