Когато управлявате 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 и го рестартирайте, ако е необходимо.
Ако нещо се обърка и имате нужда от помощ, ще се радваме да отговорим на вашите коментари.