[英]node.js mysql error 'ECONNRESET' while inserting
我正在尝试使用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_packet更改为大于blob的大小
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.