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