Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL dà lettura dell'errore ECONNRESET dopo il tempo di inattività sul server node.js

Ho contattato la gente di node-mysql sulla loro pagina Github e ho avuto delle risposte ferme.

  1. MySQL elimina effettivamente le connessioni inattive. C'è una variabile MySQL "wait_timeout" che imposta il numero di secondi prima del timeout e l'impostazione predefinita è 8 ore. Possiamo impostare il valore predefinito in modo che sia molto più grande di quello. Usa show variables like 'wait_timeout'; per visualizzare l'impostazione del timeout e set wait_timeout=28800; per cambiarlo.

  2. Secondo questo problema , node-mysql non elimina le connessioni del pool dopo questo tipo di disconnessioni. Gli sviluppatori del modulo hanno consigliato di utilizzare un heartbeat per mantenere attiva la connessione, ad esempio chiamando SELECT 1; su un intervallo. Hanno anche consigliato di utilizzare il modulo node-pool e la sua opzione idleTimeoutMillis per eliminare automaticamente le connessioni inattive.