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时出错
httpClient 在从 azure 反向代理调用 https 连接时抛出连接重置
docker-compose nodejs 在运行 docker composer 时出错。 mysql ER_NOT_SUPPORTED_AUTH_MODE