Skontaktowałem się z użytkownikami node-mysql na ich stronie Github i otrzymałem kilka stanowczych odpowiedzi.
-
MySQL rzeczywiście usuwa bezczynne połączenia. Istnieje zmienna MySQL "wait_timeout", która ustawia liczbę sekund przed przekroczeniem limitu czasu, a domyślna wartość to 8 godzin. Możemy ustawić wartość domyślną na znacznie większą. Użyj
show variables like 'wait_timeout';
aby wyświetlić ustawienia limitu czasu iset wait_timeout=28800;
aby to zmienić. -
Według tego problemu , node-mysql nie usuwa połączeń puli po tego rodzaju rozłączeniach. Twórcy modułu zalecali używanie pulsu, aby utrzymać połączenie, takie jak wywołanie
SELECT 1;
na interwale. Zalecili również użycie modułu puli węzłów i jego opcja idleTimeoutMillis do automatycznego przycinania bezczynnych połączeń.