使用Node.js的MySql连接错误

时间:2014-06-27 06:20:06

标签: mysql node.js express socket.io nodemon

  

连接丢失:服务器关闭了连接

使用node.js的node_modules mysql。 我已经安装了npm的nodemon模块来连续监视我的node.js应用程序,并在服务器崩溃后仍然重新启动服务器时,应用程序没有自行重启。

Sample image is uploaded below with error description.

3 个答案:

答案 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,以保持您的连接活跃。