При управлении серверами баз данных Linux неожиданное завершение работы службы mysqld может вызвать значительные неудобства. В этом уроке вы увидите, как автоматизировать запуск MySQL, если он останавливается по разным причинам, с помощью скрипта и crontab.
По неясным причинам демон mysqld может внезапно останавливаться и не перезапускаться автоматически в определенных ситуациях или в определенное время. Поскольку файлы журналов сервера не предоставляют полезной информации в этом отношении, я искал решение для мониторинга состояния службы mysqld. Таким образом, в ситуации, когда он не активен, автоматический перезапуск следует инициировать с помощью cronjob.
Давайте посмотрим пошаговое руководство по решению этой проблемы. (Проверено на Linux Debian 12)
Как автоматизировать запуск MySQL, если он остановился
Первым шагом является создание сценария, который перезапустит службу mysqld, если она остановлена.
1. Откройте текстовый редактор (например, nano или vi) и скопируйте приведенный ниже скрипт в новый файл. Например, вы можете использовать:
nano /path/to/your/script.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
Сохраните и закройте текстовый редактор.
2. Предоставьте скрипту права на выполнение, чтобы убедиться, что его можно запустить:
chmod +x /path/to/your/script.sh
3. Добавьте приведенный ниже скрипт в crontab (команда: crontab -e позволяет редактировать):
*/3 * * * * /path/to/your/script.sh
В приведенной выше строке указано, что сценарий будет запускаться каждые 3 минуты. символ */3 означает «каждые 3 минуты». По сути, с помощью этой строки вы автоматизируете запуск MySQL с помощью script.sh.
4. Сохраните и закройте файл. crontab.
Теперь ваш сценарий script.sh будет запускаться автоматически каждые 3 минуты для проверки статуса службы mysqld и перезапустите его при необходимости.
Если что-то пойдет не так и вам понадобится помощь, мы будем рады ответить на ваши комментарии.