Przede wszystkim powinieneś catch błąd, dzięki czemu aplikacja może go poprawnie obsłużyć i nie ulega awarii, gdy połączenie mysql zostanie zamknięte z jakiegoś dziwnego powodu. Spróbuj z connection.on('error', ...) lub z blokami try-catch
.
Aby utrzymać otwarte połączenie, należy albo ponownie połączyć się przy zamknięciu. Lub po prostu użyj połączenia pulowego mysql , który bardzo dobrze radzi sobie z automatycznym ponownym połączeniem przy jednej zmianie kodu.
PS:Pula wielu połączeń jest ogólnie dobrym pomysłem w przypadku aplikacji asynchronicznych, takich jak serwery, ale można bezpiecznie utrzymywać jedno połączenie za pomocą buforowania (connectionLimit : 1 ) tylko do automatycznego ponownego połączenia.
PPS:Limit czasu nieaktywności MySQL można skonfigurować w my.cnf serwera