【问题标题】:Error: read ECONNRESET when connected to a mysql server with Node.js错误:使用 Node.js 连接到 mysql 服务器时读取 ECONNRESET
【发布时间】:2019-11-03 21:46:17
【问题描述】:

我正在尝试使用 mysql npm 包建立与我的数据库的简单连接。乍一看,一切正常,我可以获得所需的信息,但是,如果我让服务器运行一段时间,我会收到以下错误:
错误:read ECONNRESET at TCP.onStreamRead

const express = require('express');
const app = express();`

const mysql = require('mysql');

 const db = mysql.createConnection({
  host: 'XXXX.mysql.database.azure.com',
  user: 'XXXXX',
 password: 'XXXXX',
 database: 'XXXXX'

})
    db.connect((err)=>{
    if(err){
       console.log(err.message);
    } else {
        console.log('Connected to the database');
    }
})

据我了解,问题源于数据库连接处于空闲模式。我需要配置 Azure 服务器还是需要做其他事情?

【问题讨论】:

  • 如果服务器正在运行,您是否检查过 azure 面板?
  • @nbk 是的,服务器正在运行
  • 用mysql workbench试试看能不能连接上。如果没有查看是否有错误docs.microsoft.com/en-us/azure/azure-monitor/app/… 可能重新启动会有所帮助。
  • 用工作台试过了,试过重启数据库,到目前为止还没有运气..
  • 联系支持人员。我想知道为什么日志中没有显示任何内容。

标签: javascript mysql node.js azure express


【解决方案1】:

要尝试的几件事:

  • 您可以尝试创建连接池而不是**createConnection**

    mysql.createPool({});

  • 如下修改你的 package.json:

    "dependencies": {
        "mysql": "git://github.com/mysqljs/mysql#e3e123e9af7c0829a6c1417d911572a75b4a5f95"
      },

这里有详细描述:

Bad handshake or ECONNRESET Azure Mysql Nodejs

https://social.msdn.microsoft.com/Forums/en-US/c8fedbcc-909d-41ce-8c72-0374f76fdf82/cannot-connect-from-nodejs?forum=AzureDatabaseforMySQL

希望对你有帮助。

【讨论】:

  • 看来 createPool 解决了这个问题。感谢您的帮助,很抱歉回复晚了!
  • 很高兴知道它有帮助!
猜你喜欢
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 2018-03-21
  • 2014-10-29
  • 2012-10-12
  • 1970-01-01
相关资源
最近更新 更多