簡體   English   中英

Node Js mysql(和 mysql2)ECONNRESET

[英]Node Js mysql(and mysql2) ECONNRESET

我目前正在嘗試使用 Node.Js 和mysqlmysql2 NPM 依賴項連接到 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 )所述,連接在一側突然關閉,但僅此而已,創建單一連接也不能為我解決這個問題。

有什么解決辦法嗎?

嗨,我知道這是前一段時間問過的,但這可能是因為您正在使用:

連接.end()

由於您使用的是池連接,我認為您可以使用釋放連接

conn.release()

或者

conn.destroy()

你也可以參考下面的網址。 使用node.js在mysql中插入大量數據時出錯(錯誤代碼:'ECONNRESET')

我已經解決了這個問題。 它是由默認定義 max_allowed_pa​​cket 引起的。 在 my.ini (C:\\ProgramData\\MySQL\\MySQL Server 5.7) 中找到 max_allowed_pa​​cket。 更新為“max_allowed_pa​​cket=64M”。 重啟mysql。 完畢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM