2016-02-22 26 views
6

Sto utilizzando node-mysql e la maggior parte delle query. Lavoro. alcune query non funzionano. Ho provato tutte le versioni di Node (da 0,5 ...) fino a (5.6.0), ho anche provato (4.0) e (4.1), Niente aiuta.Errore: timeout di inattività della sincronizzazione in Node.js Modulo MYSQL

Ho provato a cambiare a caso, e non ha funzionato. Ho provato a cambiare il file sequence in: this._idleTimeout = -1; e non ha aiutato.

Ho letto i problemi e GitHub e nulla ha aiutato.

Posso provare a risolverlo da solo, ma ho bisogno di ulteriori informazioni. Dov'è il timeout, perché? quando? qual è questo tipo di messaggio? Da dove viene il timeout?

MYSQL_ERROR  { [Error: Handshake inactivity timeout] 
code: 'PROTOCOL_SEQUENCE_TIMEOUT', fatal: true, 
timeout: 10000 } 

io di taglie per circa 100-150 punti, e premiare la migliore risposta, e che posso fare (necessario attendere 2 giorni). Ma anche se rispondi prima, riceverai il premio.

risposta

1

Ok, il timeout proviene dalla riga del file Protocol.js: 162. Se esegui il checkout di node-mysql vedrai che è una variabile "timeout" per le query. Se imposti il ​​timeout su qualcosa di molto superiore a 10000, il valore predefinito, allora l'errore dovrebbe andare via. Un esempio è

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

È inoltre possibile modificare il timeout nel file Sequence.js (node_modules/mysql/lib/protocollo/sequenza/Sequence.js)

this._timeout = 100000;

Problemi correlati