Mysql 处理节点中的Azure SQL错误

Mysql 处理节点中的Azure SQL错误,mysql,node.js,azure,exception,Mysql,Node.js,Azure,Exception,我正在我的节点应用程序中使用Azure MySQL数据库,该数据库工作正常,只是在使用几分钟后,Azure关闭连接,节点抛出错误: Error: read ECONNRESET 我需要的是防止我的节点应用程序崩溃,并告诉它在出现异常后重新连接。我试过: var con = mysql.createConnection({ host: "mydatabase.mysql.database.azure.com", user: "nodeapp@mydataba

我正在我的节点应用程序中使用Azure MySQL数据库,该数据库工作正常,只是在使用几分钟后,Azure关闭连接,节点抛出错误:

Error: read ECONNRESET
我需要的是防止我的节点应用程序崩溃,并告诉它在出现异常后重新连接。我试过:

var con = mysql.createConnection({
  host: "mydatabase.mysql.database.azure.com",
  user: "nodeapp@mydatabase",
  password: "12345",
  database: "mydatabase",
  port: 3306
});

    process.on('uncaughtException', function(err) {
      con.destroy();
      con.connect();
      console.log(err);
    });

这可以防止应用程序崩溃,但在此之后我的应用程序无法写入数据库,因此重新连接失败。出现这种错误后,我应该如何重新连接?非常感谢您的建议。

重现您的错误:连接大约3分钟后抛出以下错误

原因似乎是数据库中的某些设置如下:
wait\u timeout=180

我的解决方案: 1。提高等待超时值:


2。如果在建立单个重复使用的连接时发生这种情况,可以通过建立连接池来避免。请参阅。

有什么建议吗?我不是在寻找错误的来源,而是在错误发生时重新连接的方法。感谢您的努力。是的,异常处理代码可以防止应用程序崩溃,但不幸的是无法正确重新连接。但是提高timeout参数的值应该可以,谢谢。很高兴听到它有帮助,我会删除我答案中无用的部分。