Коли ви управляєте серверами 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 автоматично запускатиметься лише тоді, коли буде виконано вручну. Доданий до crontab, він запускатиметься періодично через встановлений нами інтервал часу. Я вибрав цей сценарій "autostart_mysql.sh
” запускати кожні 3 хвилини.
Як додати скрипт в crontab?
Щоб додати сценарій до crontab для періодичного запуску через встановлений вами інтервал часу, виконайте команду: crontab -e
, а потім додайте командний рядок у кінець файлу.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
вказує, що сценарій виконуватиметься кожні 3 хвилини.
Збережіть crontab і вийдіть з редактора.
Після цього кроку перевірте службу mysqld
це відбуватиметься кожні 3 хвилини, а якщо послугу зупинено, вона запускатиметься автоматично.
Якщо вам потрібна допомога чи інші роз’яснення, ми з радістю відповімо на ваші коментарі.