关于nodejs链接mysql超时的问题
发布于 1年前 作者 minglei1202 725 次浏览

最近线上的进程总是自己挂掉,查看nohup.out文件,发现是mysql链接久了,超时自动关闭链接了,网上搜索了一些解决办法,可依然没有解决。求大神帮忙,谢啦!

Error: Connection lost: The server closed the connection.

下面是我的代码:

var mq = require("mysql");
global.mc = mq.createConnection({
        host:"192.168.1.113",
        user: "root",
        password: "root"
    });
var connectionState = false;
function connectMySql(){
    mc.connect(function(err){
        if(err){
            console.log('SQL connect err:'+err);
            connectionState = false;
        }
        else{
            console.log('SQL connect successful!');
            connectionState = true;
        }
    });
    mc.on('close', function (err) {
        logger.error('mysqldb conn close');
        connectionState = false;
    });
    mc.on('error', function (err) {
        logger.error('mysqldb error: ' + err);
        connectionState = false;
    });
}
connectMySql();
var dbConnChecker = setInterval(function(){
    if(!connectionState){
        connectMySql();
    }
},500);
5 回复

用连接池来管理数据库连接吧 https://github.com/coopernurse/node-pool

你用的是这个吧,https://github.com/felixge/node-mysql 如果你用的是这个你可以看下他的例子, 不过我也是推荐你是用连接池。他的例子都还是比较详细的。

刚看了一下连接池的使用方法,感觉不错,就用它了!非常感谢

回到顶部