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