节点Js mysql(和mysql2)ECONNRESET

时间:2018-10-24 21:40:29

标签: javascript mysql node.js mysql2

我目前正在尝试使用具有mysqlmysql2 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)中所述的连接突然断开,但是仅此而已,创建单一连接也无法为我解决此问题。

对此有任何解决办法吗?

2 个答案:

答案 0 :(得分:0)

嗨,我知道这是在一段时间前被问到的,但这可能是因为您正在使用:

  

conn.end()

由于您使用的是池化连接,因此我认为您可以使用以下方式释放连接

conn.release()

conn.destroy()

答案 1 :(得分:0)

您也可以在url下面引用。 error while inserting LARGE volume data in mysql by using node.js (error code: 'ECONNRESET')

我已解决此问题。它是由默认定义max_allowed_pa​​cket引起的。在my.ini(C:\ ProgramData \ MySQL \ MySQL Server 5.7)中找到max_allowed_pa​​cket。更新为“ max_allowed_pa​​cket = 64M”。重新启动mysql。完成。