NodeJs Azure Mysql 连接时出错

Posted

技术标签:

【中文标题】NodeJs Azure Mysql 连接时出错【英文标题】:Getting error while NodeJs Azure Mysql connection 【发布时间】:2021-07-06 17:36:35 【问题描述】:

我在使用 nodejs 中的“mysql”包连接到“azure mysql”数据库时遇到此错误。

错误:在 TCP.onStreamRead (internal/stream_base_commons.js:209:20) 读取 ECONNRESET -------------------- 在 Protocol._enqueue (C:\ Users\AMEY\Documents\MCA Projects\Email Portal\email-portal-backend\node_modules\mysql\lib\protocol\Protocol.js:141:48) 在 Protocol.handshake (C:\Users\AMEY\Documents\MCA Projects \Email Portal\email-portal-backend\node_modules\mysql\lib\protocol\Protocol.js:52:41) 在 Connection.connect (C:\Users\AMEY\Documents\MCA Projects\Email Portal\email-portal-后端\node_modules\mysql\lib\Connection.js:130:18)在对象。 (C:\Users\AMEY\Documents\MCA Projects\Email Portal\email-portal-backend\index.js:52:7) 在 Module._compile (internal/modules/cjs/loader.js:1063:30) 在Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) 在 Module.load (internal/modules/cjs/loader.js:928:32) 在 Function.Module._load (internal /modules/cjs/loader.js:769:14) 在 Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) 在 internal/main/run_main_module.js:17:47 errno: - 4077, 代码: 'ECONNRESET',系统调用:'read',致命:true

这是我的 createConnection 代码:

const conn2 = new mysql.createConnection(
    host: "*****.database.windows.net",
    port: 1433,
    user: "ameykhoje",
    password: "******",
    database: "dbname",
    ssl: true,
    debug: true )
conn2.connect((err) => 
if(err) 
    console.log(err)

else 
    console.log("connected to azure")
    app.listen(port, () => 
        console.log(`Connected to database`);
    );
)

我也用 createPool 尝试过同样的方法。但是没用。

我还将 package.json 中的 mysql 包更新为:

"mysql": "git://github.com/mysqljs/mysql#e3e123e9af7c0829a6c1417d911572a75b4a5f95"

请帮我解决这个问题

【问题讨论】:

这能回答你的问题吗? ECONNRESET error crashing NodeJS application Nothing here? 或 here - 请始终从谷歌搜索错误开始 我试过了,但不知道为什么会出现这个错误。我可以连接到我的本地 mysql 数据库,但是当我尝试连接到 azure 时会抛出此错误。 你连接的是 MySQL 数据库还是 SQL 数据库? SQL 数据库.. 【参考方案1】:

您的数据库似乎不允许访问,您是否尝试检查 Azure 上的 ACL 以确保您允许来自主机的连接?

【讨论】:

【参考方案2】:

我相信问题是由于不正确的节点包引起的。您正在使用 mysql 节点包连接到 Azure SQL 数据库。

您将需要使用mssql 节点包。

【讨论】:

以上是关于NodeJs Azure Mysql 连接时出错的主要内容,如果未能解决你的问题,请参考以下文章

Azure B2C - 自定义策略 - 连接身份提供者时出错

在nodejs中连接到heroku postgres db时出错

MySQLx 尝试解析表达式时出错(Nodejs)

httpClient 在从 azure 反向代理调用 https 连接时抛出连接重置

docker-compose nodejs 在运行 docker composer 时出错。 mysql ER_NOT_SUPPORTED_AUTH_MODE

试图让Azure中美国州长的授权代码时出错:获得“无效的资源AADSTS650057”