Я использую node-mysql
и большинство запросов. За работой. некоторые запросы не работают.
Я пробовал каждую версию Node (от 0.5...) до (5.6.0), я также пробовал (4.0) и (4.1), ничего не помогает.
Я попытался изменить сам и не работал. Я попытался изменить файл sequence
на: this._idleTimeout = -1;
и не помог.
Я прочитал вопросы и GitHub, и ничего не помогло.
Я могу попытаться исправить это самостоятельно, но мне нужна дополнительная информация. Где тайм-аут, почему? когда? Что это за сообщение? Где время ожидания?
MYSQL_ERROR { [Error: Handshake inactivity timeout]
code: 'PROTOCOL_SEQUENCE_TIMEOUT', fatal: true,
timeout: 10000 }
Я наберу его примерно на 100-150 очков и вознагражу лучший ответ, и я могу сделать (нужно подождать 2 дня). Но даже если вы ответите раньше, вы получите приз.
Хорошо, тайм-аут происходит из строки протокола Protocol.js: 162. Если вы выберете node -mysql, вы увидите, что это переменная "тайм-аут" для запросов. Если вы установите тайм-аут на что-то намного превышающее 10000, по умолчанию, тогда ошибка должна исчезнуть. Пример:
pool = require('mysql').createPool({
connectionLimit : 1000,
connectTimeout : 60 * 60 * 1000,
aquireTimeout : 60 * 60 * 1000,
timeout : 60 * 60 * 1000,
host : process.env.DB_HOST,
user : process.env.DB_USERNAME,
password : process.env.DB_PASSWORD,
database : process.env.DB_DATABASE
});
Вы также можете отредактировать таймаут в файле Sequence.js(node_modules/mysql/lib/protocol/sequence/Sequence.js)
this._timeout = 100000;