Atunci când gestionați servere Linux cu baze de date, oprirea neașteptată a serviciului mysqld poate crea neplăceri considerabile. În acest tutorial, vedeți cum să automatizați pornirea MySQL dacă aceasta se oprește din diverse motive, utilizând un script și crontab.
Din motive neclare, daemon mysqld poate să se oprească brusc și să nu repornească automat în anumite situații sau ore. Având în vedere că fișierele jurnal ale serverului nu furnizează informații utile în această privință, am căutat o soluție care să monitorizeze starea serviciului mysqld. Astfel, în situația în care acesta nu este activ, să fie inițiată repornirea automată prin intermediul unui cronjob.
Să vedem tutorialul pas cu pas pentru rezolvarea acestei probleme. (Testat pe Linux Debian 12)
Cum să automatizați pornirea MySQL dacă acesta se oprește
Prima etapă este să creăm scriptul care va reporni serviciul mysqld în cazul în care acesta este oprit.
1. Deschide un editor de text (cum ar fi nano
sau vi
) și copiază scriptul de mai jos într-un fișier nou. De exemplu, poți folosi:
nano /path/to/your/script.sh
Copiază scriptul:
#!/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
Salvează și închide editorul de text.
2. Dă drepturile de execuție scriptului pentru a te asigura că acesta poate fi rulat:
chmod +x /path/to/your/script.sh
3. Adaugă scriptul de mai jos în crontab (comanda: crontab -e
vă permite editarea):
*/3 * * * * /path/to/your/script.sh
Linia de mai sus specifică că scriptul va fi rulat la fiecare 3 minute. Simbolul */3
înseamnă „la fiecare 3 minute”. Practic, cu această linie automatizați pornirea MySQL cu ajutorul script.sh
.
4. Salvează și închide fișierul crontab.
Acum, scriptul tău script.sh
va fi executat automat la fiecare 3 minute pentru a verifica starea serviciului mysqld
și a-l reporni dacă este necesar.
Dacă ceva nu merge bine și aveți nevoie de ajutor, suntem bucuroși să vă răspundem la comentarii.