Node.js mysql 读取 ECONNRESET
Posted
技术标签:
【中文标题】Node.js mysql 读取 ECONNRESET【英文标题】:Node.js mysql read ECONNRESET 【发布时间】:2022-01-02 18:45:42 【问题描述】:在搜索了有关此错误的很长时间后,并没有真正弄清楚如何在我的项目中处理此错误。我需要你的帮助:)。
我遇到了问题,我的屏幕和我的 Node-APP 会在几个小时后给我一个错误(我不知道几个小时后,但我的感觉告诉我它并不总是相同的时间)
我会在下面告诉你我的错误。有谁知道如何解决这一问题?我已经尝试过从一个短表中选择所有内容的间隔,以重置与数据库的连接,因此连接不会关闭,因为总会(每 30 分钟)对数据库进行一次短调用。
在我收到错误并重新启动应用程序后,一切正常。我看到它是一个空闲时间问题,但我没有找到任何方法来解决这个问题。 这就是我创建与数据库的连接的方式。
var con = mysql.createConnection(
host: process.env.DATABASE_HOST,
user: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
database: process.env.DATABASE );
con.connect(function(err)
if (err) throw err;
console.log("Connected to Database!");
);
非常感谢您!
最好的问候
错误:
node:events:371
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at TCP.onStreamRead (node:internal/stream_base_commons:211:20)
Emitted 'error' event on Connection instance at:
at Connection._handleProtocolError (/var/www/xxx/xxx/node_modules/mysql/lib/Connection.js:423:8)
at Protocol.emit (node:events:394:28)
at Protocol._delegateError (/var/www/xxx/xxx/node_modules/mysql/lib/protocol/Protocol.js:398:10)
at Protocol.handleNetworkError (/var/www/xxx/xxx/node_modules/mysql/lib/protocol/Protocol.js:371:10)
at Connection._handleNetworkError (/var/www/xxx/xxx/node_modules/mysql/lib/Connection.js:418:18)
at Socket.emit (node:events:394:28)
at emitErrorNT (node:internal/streams/destroy:157:8)
at emitErrorCloseNT (node:internal/streams/destroy:122:3)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
errno: -104,
code: 'ECONNRESET',
syscall: 'read',
fatal: true
再次感谢您!!! :)
【问题讨论】:
【参考方案1】:我认为这是因为多个数据库连接
使用createPool
代替createConnection
并破坏connectionLimit,acquireTimeout 毫秒,以便在此时间后自动关闭连接
var mysql = require('mysql');
var pool = mysql.createPool(
connectionLimit : 10,
acquireTimeout : 10000
host : 'example.org',
user : 'bob',
password : 'secret',
database : 'my_db'
);
pool.query('SELECT 1 + 1 AS solution', function (error, results, fields)
if (error) throw error;
console.log('The solution is: ', results[0].solution);
);
【讨论】:
非常感谢!我会试试这个,让你知道!!!再次感谢你! :)以上是关于Node.js mysql 读取 ECONNRESET的主要内容,如果未能解决你的问题,请参考以下文章
如何读取真正大的 JSON 文件并使用 node.js 将该文件的数据插入 MYSQL 数据库?