javascript - 插入时node.js mysql错误 'ECONNRESET'

标签 javascript mysql node.js

我正在尝试使用node.js将50mb的文件插入到mysql中。我调用存储过程来获取完整内容并插入它(一次插入整个 50MB)。 mysql 版本2.13。对于小文件,此代码大多有效(如果某些内容看起来不一致,则会跳过一些细节)。仅在使用大文件时才会出现该错误。

var mysql=require('mysql');
function InsertTrace(guid, device, testName,  testEvent, traceData) {

pool.query('call insert_trace(?,?,?,?,?)', [guid, device, testName, testEvent, traceData], function (err, results, fields) {
    if (err)
    {
        console.error("[DB]: Failed to insert trace data for " + guid + ", " + device + ", test " + testName + "/" + testEvent + " total bytes: " + traceData.length);
        console.error("[DB]: insert error:", err)
        return;
    }
});
}
var data = fs.readFileSync('big.json', 'utf8');
IraceTrace('99', 'ddd', 'test1', 'event15', data);

错误是:

{ Error: read ECONNRESET
    at exports._errnoException (util.js:1022:11)
    at TCP.onread (net.js:569:26)
    --------------------
    at Pool.query (mysql\lib\Pool.js:199:23)
     ...
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
  code: 'ECONNRESET',
  errno: 'ECONNRESET',
  syscall: 'read',
  fatal: true }

如果 mysql 最大大小是问题所在,我希望看到 mysql 错误,而不是连接重置,所以我无法弄清楚问题是什么。

最佳答案

必须将 max_allowed_pa​​cket 更改为大于 blob 的大小

关于javascript - 插入时node.js mysql错误 'ECONNRESET',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859079/

相关文章:

mysql - 通过 cmd 用多个 .txt 文件填充表

linux - 如何启动一个在我的 ssh session 结束时不会结束的进程?

javascript - 单击、输入、更改复选框?

具有用户定义的自定义值的 MySQL 字段

javascript - 如何检查图像是否加载?

php - 只需一个查询即可更新包含数组的表

javascript - 使用 promise /构造 promise 链时,如何设计/集成错误处理?

javascript - selenium webdriver getText 返回 [对象对象]

javascript - Bootstrap : how to make scrollable list with fixed height in percents

javascript - 在 react 问题中加载 lottie-web 动画