Podczas zarządzania serwerami baz danych Linux nieoczekiwane zamknięcie usługi mysqld może spowodować znaczne niedogodności. W tym samouczku zobaczysz, jak zautomatyzować uruchamianie MySQL, jeśli zatrzyma się z różnych powodów, używając skryptu i crontaba.
Z niejasnych powodów demon mysqld może nagle się zatrzymać i nie zostać automatycznie uruchomiony ponownie w określonych sytuacjach lub momentach. Ponieważ pliki dziennika serwera nie dostarczają przydatnych informacji w tym zakresie, szukałem rozwiązania umożliwiającego monitorowanie stanu usługi mysqld. Zatem w sytuacji, gdy nie jest ona aktywna, należy zainicjować automatyczny restart za pomocą zadania cron.
Zobaczmy samouczek krok po kroku, jak rozwiązać ten problem. (Testowano na Linux Debian 12)
Jak zautomatyzować uruchamianie MySQL, jeśli się zatrzyma
Pierwszym krokiem jest utworzenie skryptu, który zrestartuje usługę mysqld, jeśli zostanie zatrzymana.
1. Otwórz edytor tekstu (np nano
Lub vi
) i skopiuj poniższy skrypt do nowego pliku. Możesz na przykład użyć:
nano /path/to/your/script.sh
Skopiuj 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
Zapisz i zamknij edytor tekstu.
2. Nadaj skryptowi uprawnienia do wykonania, aby upewnić się, że można go uruchomić:
chmod +x /path/to/your/script.sh
3. Dodaj poniższy skrypt do pliku crontab (Komenda: crontab -e
pozwala na edycję):
*/3 * * * * /path/to/your/script.sh
Powyższa linia określa, że skrypt będzie uruchamiany co 3 minuty. symbol */3
oznacza „co 3 minuty”. Zasadniczo za pomocą tej linii zautomatyzujesz uruchamianie MySQL script.sh
.
4. Zapisz i zamknij plik crontab.
Teraz twój scenariusz script.sh
będzie uruchamiany automatycznie co 3 minuty w celu sprawdzenia stanu usługi mysqld
i uruchom go ponownie, jeśli to konieczne.
Jeśli coś pójdzie nie tak i potrzebujesz pomocy, chętnie odpowiemy na Twoje uwagi.