Коли ви керуєте серверами Linux із базами даних, зупинка служби mysqld з різних причин є не дуже приємним інцидентом. У цьому підручнику ви дізнаєтеся, як автоматично запускати MySQL, якщо він зупиняється з будь-якої причини за допомогою сценарію та crontab.
зміст
З невідомої причини в певний час демон mysqld раптово зупиняється без автоматичного перезапуску. Оскільки логи сервера мені не дуже допомогли, я шукав рішення, щоб перевірити роботу служби mysqld і, якщо вона неактивна, запустити її через crontab.
Як автоматично запустити MySQL, якщо він зупиниться? [Linux]
На серверах MySQL з MadiaDB служба 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]](https://stealthsettings.com/wp-content/uploads/2023/11/Autostart-mysql-service.webp)
Прямо зараз сценарій, з якого ви починаєте Mysql автоматично запускатиметься лише тоді, коли буде виконано вручну. Доданий до crontab, він запускатиметься періодично через встановлений нами інтервал часу. Я вибрав сценарій “autostart_mysql.sh” запускати кожні 3 хвилини.
Як додати скрипт в бухгалтерію?
Щоб додати сценарій до crontab для періодичного запуску через встановлений вами інтервал часу, виконайте команду: crontab -e, а потім додайте командний рядок у кінець файлу.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3 вказує, що сценарій виконуватиметься кожні 3 хвилини.
Збережіть crontab і вийдіть з редактора.
Після цього кроку перевірте службу mysqld це відбуватиметься кожні 3 хвилини, а якщо послугу зупинено, вона запускатиметься автоматично.
Якщо вам потрібна допомога чи інші роз’яснення, ми з радістю відповімо на ваші коментарі.