我正在使用 node.js 和 MYSQL 在ubuntu上的 AWS EC2 实例上运行服务器。它工作正常3天, 突然停止工作。
在谷歌上搜索我发现这是由于MYSQL数据库中的连接丢失。但找不到致命的确切原因。
我正在使用以下代码进行MYSQL连接
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : process.env.DB_PASSWORD
});
connection.query('USE MY_DB');
并且像这样查询
app.get('/user', function(req, res){
connection.query('SELECT * FROM movie', function(err, rows){
var users = {"users" : rows};
res.send(users);
});
});
并记录致命事件:
2017-01-20T00:22:23.721Z - [31merror[39m: GET /users : Error: ER_SERVER_SHUTDOWN: Server shutdown in progress
at Query.Sequence._packetToError (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/sequences/Sequence.js:52:14)
at Query.ErrorPacket (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/sequences/Query.js:83:18)
at Protocol._parsePacket (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/Protocol.js:280:23)
at Parser.write (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/Parser.js:74:12)
at Protocol.write (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/home/ubuntu/myserver/node_modules/mysql/lib/Connection.js:109:28)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
--------------------
at Protocol._enqueue (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/Protocol.js:141:48)
at Connection.query (/home/ubuntu/myserver/node_modules/mysql/lib/Connection.js:214:25)
at /home/ubuntu/myserver/myserver.js:125:14
at Layer.handle [as handle_request] (/home/ubuntu/myserver/node_modules/express/lib/router/layer.js:95:5)
at next (/home/ubuntu/myserver/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/home/ubuntu/myserver/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/ubuntu/myserver/node_modules/express/lib/router/layer.js:95:5)
at /home/ubuntu/myserver/node_modules/express/lib/router/index.js:277:22
at Function.process_params (/home/ubuntu/myserver/node_modules/express/lib/router/index.js:330:12)
at next (/home/ubuntu/myserver/node_modules/express/lib/router/index.js:271:10)
再记录一次:
2017-01-20T00:22:24.189Z - [31merror[39m: deleteRecords : Error: connect ECONNREFUSED 127.0.0.1:3306
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1087:14)
--------------------
at Protocol._enqueue (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/Protocol.js:141:48)
at Protocol.handshake (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at Connection.connect (/home/ubuntu/myserver/node_modules/mysql/lib/Connection.js:136:18)
at Connection._implyConnect (/home/ubuntu/myserver/node_modules/mysql/lib/Connection.js:467:10)
at Connection.query (/home/ubuntu/myserver/node_modules/mysql/lib/Connection.js:212:8)
at Object.<anonymous> (/home/ubuntu/myserver/myserver.js:21:12)
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)
2017-01-20T00:22:28.135Z - [31merror[39m: GET /users : Error: Cannot enqueue Query after fatal error.
at Protocol._validateEnqueue (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/Protocol.js:199:16)
at Protocol._enqueue (/home/ubuntu/myserver/node_modules/mysql/lib/protocol/Protocol.js:135:13)
at Connection.query (/home/ubuntu/myserver/node_modules/mysql/lib/Connection.js:214:25)
at /home/ubuntu/myserver/myserver.js:125:14
at Layer.handle [as handle_request] (/home/ubuntu/myserver/node_modules/express/lib/router/layer.js:95:5)
at next (/home/ubuntu/myserver/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/home/ubuntu/myserver/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/ubuntu/myserver/node_modules/express/lib/router/layer.js:95:5)
at /home/ubuntu/myserver/node_modules/express/lib/router/index.js:277:22
at Function.process_params (/home/ubuntu/myserver/node_modules/express/lib/router/index.js:330:12)
我想知道确切的问题和解决方案。任何帮助表示赞赏。