2017-03-17 15 views
0

node.jsを使用してmysqlに50MBのファイルを挿入しようとしています。私は完全な内容を取り込み、それを挿入するストアドプロシージャを呼び出します(一度に50MB全体)。 mysql 2.13のバージョン。小さなファイルの場合、このコードはほとんど機能します(何か不一致がある場合はいくつかの詳細はスキップされます)。このエラーは大きなファイルでのみ検出されます。node.js挿入中のmysqlエラー 'ECONNRESET'

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); 

エラーは:MySQLの最大サイズが問題だった

{ 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のエラーを見ることを期待します。

+0

...ドライバで使用するコードは多分ですか? – jy95

答えて

0

max_allowed_pa​​cketをブロブのサイズより大きく変更する必要がありました