Při správě databázových serverů Linux může neočekávané vypnutí služby mysqld způsobit značné nepříjemnosti. V tomto tutoriálu uvidíte, jak automatizovat spouštění MySQL, pokud se z různých důvodů zastaví pomocí skriptu a crontab.
Z nejasných důvodů se může démon mysqld v určitých situacích nebo časech náhle zastavit a nerestartovat automaticky. Protože soubory protokolu serveru neposkytují v tomto ohledu užitečné informace, hledal jsem řešení pro sledování stavu služby mysqld. V situaci, kdy není aktivní, by měl být automatický restart spuštěn pomocí cronjob.
Podívejme se na tutoriál krok za krokem k vyřešení tohoto problému. (Vyzkoušeno Linux Debian 12)
Jak automatizovat spouštění MySQL, pokud se zastaví
Prvním krokem je vytvoření skriptu, který restartuje službu mysqld, pokud je zastavena.
1. Otevřete textový editor (např nano
nebo vi
) a zkopírujte níže uvedený skript do nového souboru. Můžete například použít:
nano /path/to/your/script.sh
Zkopírujte 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
Uložte a zavřete textový editor.
2. Udělte skriptu práva ke spuštění, abyste se ujistili, že jej lze spustit:
chmod +x /path/to/your/script.sh
3. Přidejte níže uvedený skript do crontab (příkaz: crontab -e
umožňuje editovat):
*/3 * * * * /path/to/your/script.sh
Výše uvedený řádek určuje, že skript bude spouštěn každé 3 minuty. symbol */3
znamená „každé 3 minuty“. V podstatě s tímto řádkem automatizujete spouštění MySQL script.sh
.
4. Uložte a zavřete soubor crontab.
Nyní váš scénář script.sh
se spustí automaticky každé 3 minuty pro kontrolu stavu služby mysqld
a v případě potřeby jej restartujte.
Pokud se něco pokazí a budete potřebovat pomoc, rádi odpovíme na vaše komentáře.