【问题标题】:Node JS: Error: read ECONNRESET at TCP.onStreamRead (node:internal/stream_base_commons:211:20)节点 JS:错误:在 TCP.onStreamRead 读取 ECONNRESET (node:internal/stream_base_commons:211:20)
【发布时间】:2022-01-04 00:50:51
【问题描述】:

我正在尝试使用 node.js 在 MySQL 数据库中插入大量数据。 我的代码适用于大约 300 个元素的小数组,但是当我插入一个包含 1M 个元素的数组时,出现以下错误:

Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:211:20)
    at Socket.emit (node:events:379:20)
    at addChunk (node:internal/streams/readable:313:12) {
  errno: -4077,
  code: 'ECONNRESET',
  syscall: 'read',
  fatal: true
}

我的查询:

let query = "INSERT INTO transactions (customer_id, tr_date, tr_time, mcc_code, tr_type, amount, term_id) VALUES ?";
              connection.query(query, [csvData], (error, response) => {
                console.log(error || response);
              })

【问题讨论】:

    标签: javascript mysql sql node.js


    【解决方案1】:

    有关错误本身的更多信息,请参阅here。这只是一个连接错误。

    连接失败的原因很可能是因为该插入很大并且可能需要很长时间才能终止。此外,由于通过网络发送的数据大小适中,因此增加了完成整个操作所需的时间。

    IMO 解决您的问题的方法是将数据拆分为多个较小的插入(尝试 500、1k、5k,具体取决于每行的大小)。

    【讨论】:

      猜你喜欢
      • 2022-11-11
      • 1970-01-01
      • 2019-09-12
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 2018-06-13
      相关资源
      最近更新 更多