节点 Js mysql(和 mysql2) ECONNRESET
Posted
技术标签:
【中文标题】节点 Js mysql(和 mysql2) ECONNRESET【英文标题】:Node Js mysql(and mysql2) ECONNRESET 【发布时间】:2019-03-29 10:00:26 【问题描述】:我目前正在尝试使用带有 mysql
或 mysql2
NPM 依赖项的 Node.Js 连接到 Internet 上的 MySQL 服务器,以使用查询和其他相关内容。
代码很简单……
//i import my dependency
const mysql = require('mysql2') //either 'mysql' or 'mysql2'
//i create my pool to create connections as needed
var conn = mysql.createPool(
host: 'some_database_i_have_access_to.mysql.uhserver.com',
user: 'valid_user',
password: 'valid_password',
database: 'some_existing_database'
)
//i try to connect (this is the part where it fails)
conn.getConnection((err,conn) =>
if (err) throw err //<- the error is thrown here
//i do query stuff
conn.query("SELECT * FROM atable",(err,res,firlds) =>
if(err) throw err
console.log(JSON.stringify(res))
)
//i close the connection
conn.end()
)
但我总是收到这样的错误:
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:111:27)
--------------------
at Protocol._enqueue (C:\Users\Aluno\Desktop\my-project\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\Users\Aluno\Desktop\my-project\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (C:\Users\Aluno\Desktop\my-project\node_modules\mysql\lib\Connection.js:118:18)
at Object.<anonymous> (C:\Users\Aluno\Desktop\my-project\private\dtp-mysql.js:13:6)
at Module._compile (internal/modules/cjs/loader.js:707:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
at Module.load (internal/modules/cjs/loader.js:605:32)
at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
at Function.Module._load (internal/modules/cjs/loader.js:536:3)
at Module.require (internal/modules/cjs/loader.js:643:17)
我所知道的关于该错误的所有信息是,如本问题 (Node js ECONNRESET) 所述,连接突然在一侧关闭,但仅此而已,创建单一连接也不能解决我的问题。
有什么解决办法吗?
【问题讨论】:
你也可以参考下面的网址。 ***.com/questions/53586818/… 【参考方案1】:您好,我知道这是不久前被问到的,但这可能是因为您正在使用:
conn.end()
由于您使用的是池连接,我认为您可以使用释放连接
conn.release()
或者
conn.destroy()
【讨论】:
【参考方案2】:您也可以参考以下网址。 error while inserting LARGE volume data in mysql by using node.js (error code: 'ECONNRESET')
我已经解决了这个问题。它是由默认定义 max_allowed_packet 引起的。在 my.ini (C:\ProgramData\MySQL\MySQL Server 5.7) 中找到 max_allowed_packet。更新为“max_allowed_packet=64M”。重启mysql。完成。
【讨论】:
以上是关于节点 Js mysql(和 mysql2) ECONNRESET的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 async\await 的 mysql 池 |节点JS