Když spravujete Linuxové servery s databázemi, neočekávané zastavení služby mysqld z různých důvodů není příjemná situace. V tomto průvodci se dozvíte, jak automaticky spustit MySQL, pokud se z nějakého důvodu zastaví, pomocí skriptu a crontabu.
Z neznámých důvodů se někdy démon mysqld náhle zastaví, aniž by se automaticky znovu spustil v určitých hodinách. Protože mi záznamy serveru moc nepomohly, hledal jsem řešení, jak zkontrolovat, zda služba mysqld běží, a v případě neaktivity ji znovu spustit pomocí crontabu.
Obsah
Jak automaticky spustit MySQL, pokud se zastaví? [Linux]
Na MySQL serverech s MariaDB by se služba mysqld obvykle měla automaticky znovu spustit, když se zastaví z různých důvodů. Pokud se to nestane, níže uvedený skript pravidelně zkontroluje, zda démon mysqld běží, a pomůže vám automaticky spustit MySQL, pokud je zastavený.
Můj test se provádí na OS Debian 12, MariaDB 10.11.4.
1. Otevřete konzolu a vytvořte soubor pro budoucí skript, který spustí službu mysqld, pokud je zastavena.
Raději používám editor"nano
".
sudo nano /usr/local/bin/autostart_mysql.sh
2. V novém souboru “autostart_mysql.sh
“ zkopírujte níže uvedený skript:
#!/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. Uložte nový soubor “autostart_mysql.sh
“, poté nastavte oprávnění ke spuštění.
chmod +x /usr/local/bin/autostart_mysql.sh
4. Přejděte na „/usr/local/bin/
“ a otestujte skript příkazem: „./autostart_mysql.sh
".
Právě teď, skript, ze kterého začínáte MySQL automaticky se spustí pouze při ručním spuštění. Po přidání do crontabu se bude spouštět pravidelně v námi nastaveném časovém intervalu. Vybral jsem si scénář"autostart_mysql.sh
“, který se spustí každé 3 minuty.
Jak přidat skript do crontabu?
Chcete-li přidat skript do crontab, aby se spouštěl pravidelně, ve vámi nastaveném časovém intervalu, spusťte příkaz: crontab -e
a poté přidejte příkazový řádek na konec souboru.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
určuje, že skript bude spuštěn každé 3 minuty.
Uložte crontab a ukončete editor.
Po tomto kroku zkontrolujte službu mysqld
bude se to provádět každé 3 minuty a pokud je služba zastavena, automaticky se spustí.
Pokud potřebujete pomoc nebo jiná vysvětlení, rádi odpovíme na vaše komentáře.