CNode

创建mysql池如何解决 8小时不响应数据库断开情况

问答
Bbykege发布于10 年前最后回复10 年前8 回复5221 浏览0 收藏

程序如下:请问如何解决mysql8小时无请求自动断开的问题,应该在那个部分进行判断

var mysql = require('mysql'); var DB_NAME = 'DB_name';

var pool = mysql.createPool({ host : 'localhost', user : 'root', password : '123', port: '3306' });

pool.on('connection', function(connection) { connection.query('SET SESSION auto_increment_increment=1'); });
pool.getConnection(function(err, connection) {

var useDbSql = "USE " + DB_NAME;
connection.query(useDbSql, function (err) {
     if (err) {
        console.log("USE Error: " + err.message);
        return;
     }
     console.log('USE succeed');
});

}

查看回复

回复 (8)

C
captainblue2013#1·10 年前

easymysql 自带心跳

B
bykege#2·10 年前
引用 captainblue2013easymysql 自带心跳

@captainblue2013 什么意思,亲

I
im-here#3·10 年前

你这没释放连接啊,query完了之后 release()就ok了。 你说的8小时应该是mysql默认的从连接池回收连接对象的时间。

B
bykege#5·10 年前
引用 captainblue2013@imhered 不是,一个链接8小时没动,就会死掉,客户端不会自动感知

@captainblue2013 是啊。请问怎么做才能解决这个问题?

H
huangshaohui#7·10 年前

使用这个连接的时候先判断状态

B
bykege#8·10 年前
引用 captainblue2013@bykege 2L说了

@captainblue2013 好的,感谢

参与回复
登录后即可参与回复。登录