连接丢失:服务器关闭了连接
使用node.js的node_modules mysql。 我已经安装了npm的nodemon模块来连续监视我的node.js应用程序,并在服务器崩溃后仍然重新启动服务器时,应用程序没有自行重启。
答案 0 :(得分:2)
搜索了大量的网站&实现代码我已成功解决上述错误。为此,我使用了mysqlpool。代码如下所示。
首先,你声明这样的连接:
var mysql = require('mysql');
var mysqlPool = mysql.createPool({
host : "localhost",
user : "username",
password: "password",
database :"databasename",
port:3306
});
现在您的连接配置已成功创建&像这样使用:
var strQuery = "SELECT * FROM userdetails"; //here store sql query in strQuery variable.
mysqlPool.getConnection(function(err, connection) {
if(err) throw err;
connection.query(strQuery, function(err, rows) {
if(err) {
// if error occures goes here.
connection.end(); // if error occured closed the connection
console.error(err);
return;
}
//If no error here you get your query output.
console.log(rows[0].User_name); //retrieved username & print into console log or you can also retrived any rows like this.
connection.end();// After performing the operation then closed the connection.
});
});
答案 1 :(得分:1)
只有在任何模块或文件中进行任何更改时,Nodemon才会重新启动应用程序!
答案 2 :(得分:1)
这可能与wait_timeout
服务器变量有关。如果没有数据通过连接超过这么多秒,服务器将断开连接。您可以提高设置,但是您有可能需要处理更多空闲连接,最终无论如何都会再次达到超时。
最好的解决方案是在发生这种情况时重新建立客户端连接,并且似乎不支持开箱即用,但您可以自己实现:{{3 }}
另一个解决方案可能是定期(在超时之前)执行一个简单的查询,如SELECT 1
,以保持您的连接活跃。