CNode

mysql node如何关闭连接池的链接?

问答
Ssongqinghehe发布于11 年前最后回复11 年前7 回复9271 浏览0 收藏

现在有个项目,用mysql连接池打开了链接,在执行完sql完没有关闭,造成mysql服务中基本都是处于sleep的连接数,请问mysql node如何关闭连接池的链接?

查看回复

回复 (7)

S
songqinghehe#1·11 年前
引用 youqingkuihttp://blog.fens.me/nodejs mysql intro/ 可以参考下这篇文章,里面有讲到,断线重连。

@youqingkui 摘抄了一段代码: pool.getConnection(function (err, conn) { if (err) console.log("POOL ==> " + err);

conn.query(selectSQL,function(err,rows){
    if (err) console.log(err);
    console.log("SELECT ==> ");
    for (var i in rows) {
        console.log(rows[i]);
    }
    conn.release();
});

}); 在执行sql完毕后执行conn.release()来释放的链接?

S
songqinghehe#3·11 年前
Y
youqingkui#4·11 年前

用的这个吗?:https://github.com/felixge/node-mysql/

文档上面有些:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
  if (err) throw err;

  console.log('The solution is: ', rows[0].solution);
});

connection.end();

S
songqinghehe#5·11 年前
引用 youqingkui用的这个吗?:https://github.com/felixge/node mysql/ 文档上面有些:

@youqingkui 我是需要执行完sql后在回调完就执行connection.end()么?用的是连接池

Y
youqingkui#6·11 年前
引用 songqinghehe@youqingkui 我是需要执行完sql后在回调完就执行connection.end()么?用的是连接池

@songqinghehe 不是很清楚,然后看到连接池是这样子关闭的:

pool.end(function (err) {
  // all connections in the pool have ended
});
Y
youqingkui#7·11 年前

http://blog.fens.me/nodejs-mysql-intro/ 可以参考下这篇文章,里面有讲到,断线重连。

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