Podczas zarządzania serwerami Linux z bazami danych, nagłe zatrzymywanie usługi mysqld z różnych powodów nie jest przyjemną sytuacją. W tym poradniku nauczysz się, jak automatycznie uruchomić MySQL, jeśli zatrzyma się z jakiejkolwiek przyczyny, za pomocą skryptu i crontab.
Z niewiadomych przyczyn czasem demon mysqld zatrzymuje się nagle, nie uruchamiając się automatycznie o pewnych porach. Ponieważ logi serwera nie były dla mnie zbyt pomocne, poszukałem rozwiązania, aby sprawdzić, czy usługa mysqld jest uruchomiona, a w przypadku jej braku uruchomić ją za pomocą crontab.
Zawartość
Jak uruchomić MySQL automatycznie, jeśli się zatrzyma? [Linux]
Na serwerach MySQL z MariaDB usługa mysqld powinna normalnie uruchamiać się automatycznie, gdy zatrzyma się z różnych powodów. Jeśli to się nie dzieje, poniższy skrypt będzie regularnie sprawdzał, czy demon mysqld jest uruchomiony, i pomoże ci automatycznie uruchomić MySQL, jeśli jest zatrzymany.
Mój test został przeprowadzony na systemie operacyjnym Debian 12, MariaDB 10.11.4.
1. Otwórz konsolę i utwórz plik dla przyszłego skryptu, który uruchomi usługę mysqld, jeśli zostanie zatrzymana.
Wolę używać edytora ”nano
".
sudo nano /usr/local/bin/autostart_mysql.sh
2. W nowym pliku „autostart_mysql.sh
” skopiuj poniższy skrypt:
#!/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. Zapisz nowy plik „autostart_mysql.sh
„, a następnie ustaw uprawnienia do wykonywania.
chmod +x /usr/local/bin/autostart_mysql.sh
4. Przejdź do „/usr/local/bin/
” i przetestuj skrypt za pomocą polecenia: „./autostart_mysql.sh
".
W tej chwili skrypt, od którego zaczynasz MySQL automatycznie będzie działać tylko wtedy, gdy zostanie wykonane ręcznie. Dodany do crontaba, będzie uruchamiał się okresowo, w ustalonym przez nas odstępie czasu. Wybrałem ten scenariusz”autostart_mysql.sh
” i będzie uruchamiany co 3 minuty.
Jak dodać skrypt do crontab?
Aby dodać skrypt do pliku crontab, który będzie uruchamiany okresowo, w ustalonych przez Ciebie odstępach czasu, uruchom komendę: crontab -e
, a następnie dodaj wiersz poleceń na końcu pliku.
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
określa, że skrypt będzie wykonywany co 3 minuty.
Zapisz plik crontab i wyjdź z edytora.
Po tym kroku sprawdź usługę mysqld
będzie to wykonywane co 3 minuty, a jeśli usługa zostanie zatrzymana, zostanie uruchomiona automatycznie.
Jeśli potrzebujesz pomocy lub innych wyjaśnień, chętnie odpowiemy na Twoje uwagi.