Когато управлявате Linux сървъри с бази данни, спирането на услугата mysqld по различни причини не е много приятен инцидент. В този урок ще научите как да стартирате MySQL автоматично, ако спре по някаква причина, като използвате скрипт и crontab.
Съдържание
По някаква неизвестна причина в определени моменти демонът mysqld спира внезапно, без да се рестартира автоматично. Тъй като логовете на сървъра не ми помогнаха много, потърсих решение да проверя работата на услугата mysqld и ако не е активна, да я стартирам чрез crontab.
Как да стартирам MySQL автоматично, ако спре? [Linux]
На MySQL сървъри с MadiaDB услугата mysqld обикновено трябва да се рестартира автоматично, когато спре по различни причини. Ако това не се случи, скриптът по-долу периодично ще проверява дали демонът mysqld работи и ще помогне да стартира MySQL автоматично, ако бъде спрян.
Моят тест е направен на OS 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 минути, а ако услугата бъде спряна, ще се стартира автоматично.
Ако имате нужда от помощ или други пояснения, ще се радваме да отговорим на вашите коментари.