Почему сервер MySQL закрывает соединение?

Была произведена миграция сервера MySQL на другой хостинг. Отдельная vm, на которую установлен сервер MySQL. На новой установке столкнулся с тем, что MySQL закрывает соединения. В приложении (Nest.js + TypeORM) это выглядит так:
...
QueryFailedError: read ETIMEDOUT
...
driverError: Error: read ETIMEDOUT
      at TCP.onStreamRead (node:internal/stream_base_commons:217:20) {
    errno: -110,
    code: 'ETIMEDOUT',
    syscall: 'read',
    fatal: true
  },
  errno: -110,
  code: 'ETIMEDOUT'


Если подключится, к примеру, консольным клиентов mysql, то:
  • соеденение установлено;
  • выполняем какой-нибудь запрос, все ок;
  • ждем пару минут, выполняем еще один запрос и получаем ошибку: ERROR 2013 (HY000): Lost connection to MySQL server during query
    No connection. Trying to reconnect...

spoiler
6611e91bd7216363219706.jpeg
  • Вопрос задан
  • 1176 просмотров
Пригласить эксперта
Ответы на вопрос 2
karabanov
@karabanov
Системный администратор
Посмотри есть ли, что нибудь в error.log и проверь, что процесс сервера не перезапускается.

PS
И не надо публиковать текст картинкой - текст с картинки не скопирова, не найти поиском, а порой и вовсе сложно разглядеть, как из-за того, что картина "зашакалена" и её не увеличить, так и из-за того что на фоне какие-то картинка.
Ответ написан
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
Разрыв соединения через некоторое время — нормальное поведение. Раньше для ленивых в библиотеках был даже pconnect, чтобы поддерживать соединение активным. Со временем он стал deprecated, и просто исчез. Рекомендуется всякий раз проверять соединение, и подключаться в случае ошибки, а потом уж что-то делать. Ну или раз в минуту слать что-то типа SELECT NOW(), чтобы соединение не отрывалось.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы