Когда у вас есть дело с серверами Linux с базами данных, неожиданная остановка службы mysqld по разным причинам не является приятной ситуацией. В этом руководстве вы узнаете, как автоматически запустить MySQL, если она остановится по какой-либо причине, используя скрипт и crontab.
По непонятным причинам иногда демон mysqld внезапно останавливается без автоматического перезапуска в определенные часы. Поскольку логи сервера не очень помогли, я искал решение, чтобы проверять работу службы mysqld и, в случае ее неактивности, запускать ее с помощью crontab.
Cодержание
Как автоматически запустить 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 минуты, и если служба остановлена, она запустится автоматически.
Если вам нужна помощь или другие разъяснения, мы будем рады ответить на ваши комментарии.