Как автоматически запустить MySQL, если она останавливается? [Linux]

Когда у вас есть дело с серверами Linux с базами данных, неожиданная остановка службы mysqld по разным причинам не является приятной ситуацией. В этом руководстве вы узнаете, как автоматически запустить MySQL, если она остановится по какой-либо причине, используя скрипт и crontab.

По непонятным причинам иногда демон mysqld внезапно останавливается без автоматического перезапуска в определенные часы. Поскольку логи сервера не очень помогли, я искал решение, чтобы проверять работу службы mysqld и, в случае ее неактивности, запускать ее с помощью crontab.

Как автоматически запустить MySQL, если она останавливается? [Linux]

На серверах MySQL с MariaDB служба mysqld обычно должна автоматически перезапускаться, когда она останавливается по разным причинам. Если этого не происходит, приведенный ниже скрипт будет регулярно проверять, работает ли демон mysqld, и поможет вам автоматически запустить MySQL, если она остановится.

Мой тест выполнен на ОС Debian 12, MariaDB 10.11.4.

1. Откройте консоль и создайте файл будущего скрипта, который будет запускать службу mysqld, если она остановлена.

Я предпочитаю использовать редактор "nano».

sudo nano /usr/local/bin/autostart_mysql.sh

2. В новом файле «autostart_mysql.sh” скопируйте приведенный ниже сценарий:

#!/bin/bash

if systemctl is-active mysqld > /dev/null; then
  echo "The mysqld service is running."
else
  echo "The mysqld service is not running. Restarting..."
  systemctl start mysqld
fi

3. Сохраните новый файл»autostart_mysql.sh«, затем установите разрешения на выполнение.

chmod +x /usr/local/bin/autostart_mysql.sh

4. Перейдите к «/usr/local/bin/» и протестируйте скрипт командой: «./autostart_mysql.sh».

Как автоматически запустить MySQL, если она останавливается? [Linux]
Автозапуск службы MySQL

Прямо сейчас сценарий, с которого вы начинаете MySQL автоматически будет запускаться только при выполнении вручную. Добавленный в crontab, он будет запускаться периодически с установленным нами интервалом времени. Я выбрал этот сценарий "autostart_mysql.sh» будет запускаться каждые 3 минуты.

Как добавить скрипт в crontab?

Чтобы добавить в crontab скрипт для периодического запуска через заданный вами интервал времени, выполните команду: crontab -e, затем добавьте командную строку в конец файла.

*/3 * * * * /usr/local/bin/autostart_mysql.sh

*/3 указывает, что скрипт будет выполняться каждые 3 минуты.

Сохраните crontab и выйдите из редактора.

После этого шага проверьте сервис mysqld это будет делаться каждые 3 минуты, и если служба остановлена, она запустится автоматически.

Если вам нужна помощь или другие разъяснения, мы будем рады ответить на ваши комментарии.

Поклонник технологий, с 2006 года с удовольствием пишу на StealthSettings.com. Обширный опыт работы с операционными системами: macOS, Windows и Linux, а также с языками программирования и платформами для блогов (WordPress) и онлайн-магазинов (WooCommerce, Magento, PrestaShop).

КАК » Linux » MySQL » Как автоматически запустить MySQL, если она останавливается? [Linux]
Оставьте комментарий