Время от времени крашится приложение с такой ошибкой:
Error: Connection lost: The server closed the connection.
at Protocol.end (/srv/arcoin/node_modules/mysql/lib/protocol/Protocol.js:109:13)
at Socket.<anonymous> (/srv/arcoin/node_modules/mysql/lib/Connection.js:115:28)
at emitNone (events.js:91:20)
at Socket.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
Как я понял, mysql закрывает соединение с сервером (или оно просто умирает). Как быть в такой ситуации? Если есть в настройках время жизни соединения, где можно его изменить?
Сейчас я использую вот такой модуль для подключения:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'test',
password : 'test',
database : 'test'
});
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
});
module.exports = connection;
Говорят, чтобы избежать этой проблемы, надо просто создать пул коннектов:
var connection = mysql.createPool({
connectionLimit : 30,
host : 'localhost',
user : 'test',
password : 'test',
database : 'test'
});
Но поможет и это в моем случае? Если поможет, как долго будет жить соединение с mysql?