mysql node如何关闭连接池的链接?
发布于 10 年前 作者 songqinghehe 8771 次浏览 最后一次编辑是 8 年前 来自 问答

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

7 回复

用的这个吗?: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();

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

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

pool.end(function (err) {
  // all connections in the pool have ended
});

http://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()来释放的链接?

@songqinghehe 抱歉我没有试过,你可以试下。:)

@youqingkui 没事,我来试一下。

回到顶部