Назад | Перейти на главную страницу

MySQL / MariaDB перестает работать. Как мне узнать почему?

Сегодня я видел, как MySQL / MariaDB перестает работать на CentOS VPS. Когда я проверяю статус, я получаю:

# service mysql status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

Я удаляю этот файл и перезапускаю службу. Но позже в тот же день MySQL снова будет отключен, и файл блокировки все еще будет там. Итак, что-то происходит, из-за чего MySQL умирает, но оставляет файл блокировки, который говорит мне, что это не чистый / плавный выход.

В прошлом, когда я видел, что файл блокировки существует, но служба не работает, это было причиной внезапной перезагрузки всего VPS. Но здесь дело обстоит не так, потому что мой VPS работает более 160 дней.

я заметил fail2ban запретить несколько случайных попыток взлома сайта Wordpress на VPS. Таким образом, было довольно много трафика, пытающегося забить сервер здесь и там, пока они не были заблокированы автоматически.

  1. Как я могу определить, что вызывает случайную остановку MySQL?
  2. Каков рекомендуемый метод автоматического перезапуска MySQL? Могу я использовать что-нибудь вроде Руководитель?

ОБНОВЛЕНИЕ: после просмотра моих messages log я вижу это:

Dec  1 14:06:42 localhost kernel: Out of memory: Kill process 25063 (mysqld) score 24 or sacrifice child
Dec  1 14:06:42 localhost kernel: Killed process 25063, UID 27, (mysqld) total-vm:773716kB, anon-rss:32300kB, file-rss:48kB

Значит, это означает, что MySQL просто перегружен запросами (вероятно, от httpd)?

Убийца OOM сработал, когда в системе не хватило ОЗУ и подкачки - mysqld процесс был выбран в качестве его жертвы, вероятно, из-за сочетания большого использования оперативной памяти и относительно низкой активности ее оперативной памяти.

Либо отрегулируйте доступный размер пула буферов, чтобы MariaDB занимала меньше ОЗУ и не запускала убийцу OOM (что может снизить производительность), либо предоставьте системе больше ОЗУ или свопа.