最近线上的进程总是自己挂掉,查看nohup.out文件,发现是mysql链接久了,超时自动关闭链接了,网上搜索了一些解决办法,可依然没有解决。求大神帮忙,谢啦!
<code>Error: Connection lost: The server closed the connection. </code>
下面是我的代码:
<pre>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);</pre>
用连接池来管理数据库连接吧 https://github.com/coopernurse/node-pool
你用的是这个吧,https://github.com/felixge/node-mysql 如果你用的是这个你可以看下他的例子, 不过我也是推荐你是用连接池。他的例子都还是比较详细的。
谢啦!
刚看了一下连接池的使用方法,感觉不错,就用它了!非常感谢
@minglei1202 共同交流啊