Jag kontaktade node-mysql-folket på deras Github-sida och fick några bestämda svar.
-
MySQL beskär verkligen lediga anslutningar. Det finns en MySQL-variabel "wait_timeout" som ställer in antalet sekunder innan timeout och standard är 8 timmar. Vi kan ställa in standarden till att vara mycket större än så. Använd
show variables like 'wait_timeout';
för att se din timeout-inställning ochset wait_timeout=28800;
för att ändra det. -
Enligt det här problemet , node-mysql beskär inte poolanslutningar efter dessa typer av frånkopplingar. Modulutvecklarna rekommenderade att man använder ett hjärtslag för att hålla anslutningen vid liv, som att anropa
SELECT 1;
på ett intervall. De rekommenderade också att använda nodpoolmodulen och dess idleTimeoutMillis-alternativ för att automatiskt beskära lediga anslutningar.