Jeg kontaktede node-mysql-folkene på deres Github-side og fik nogle faste svar.
-
MySQL beskærer faktisk ledige forbindelser. Der er en MySQL-variabel "wait_timeout", der indstiller antallet af sekunder før timeout, og standarden er 8 timer. Vi kan indstille standarden til at være meget større end det. Brug
show variables like 'wait_timeout';
for at se din timeout-indstilling ogset wait_timeout=28800;
for at ændre det. -
Ifølge dette problem , beskærer node-mysql ikke poolforbindelser efter denne slags afbrydelser. Moduludviklerne anbefalede at bruge et hjerteslag for at holde forbindelsen i live, såsom at kalde
SELECT 1;
på et interval. De anbefalede også at bruge node-pool-modulet og dens idleTimeoutMillis mulighed for automatisk at beskære inaktive forbindelser.