Ho contattato la gente di node-mysql sulla loro pagina Github e ho avuto delle risposte ferme.
-
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 eset wait_timeout=28800;
per cambiarlo. -
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.