Received packet in the wrong sequence. エラーへの対処
Node.js + Lambda + JAWS を使用して MySQL5.6(RDS) に接続した際に
Received packet in the wrong sequence.
となってしまう場合の対処方法です。
現象
Lambda + Node.js な環境から MySQL5.6(RDS) にconneciton.conect();
すると
Received packet in the wrong sequence.
のエラーとなってしまう。
ちなみにローカルでjaws run
とした場合は問題なく接続できていました。
環境
{ ... "devDependencies": {}, "dependencies": { "jaws-core-js": "~0.0.2", "mysql": "^2.9.0", "request": "^2.67.0" } }
コード
具体的なコードは下記の通りでconnect();
時にエラーとなります。
var mysql = require('mysql'); var conn = mysql.createConnection({...}); module.exports.run = function(event, context, cb) { conn.connect(function(error){ console.log("connect:" + error); });
原因
browserify のビルド時にうまくいってない模様とのこと。
対処
browserifyのビルドからMySQLのライブラリを外せば対処可能です。
具体的には各モジュール配下のawsm.json
を
"exclude": [ "aws-sdk" ], "includePaths": [] }, "excludePatterns": []
から
"exclude": [ "aws-sdk", "mysql" ], "includePaths": [ "node_modules/mysql" ]
としてください。