Kiedy zarządzasz serwerami Linux za pomocą baz danych, zatrzymanie usługi mysqld z różnych powodów nie jest zbyt przyjemnym zdarzeniem. W tym samouczku dowiesz się, jak automatycznie uruchomić MySQL, jeśli z jakiegoś powodu zatrzyma się, używając skryptu i crontaba.
treść
Z nieznanego powodu w pewnych momentach demon mysqld zatrzymuje się nagle bez automatycznego ponownego uruchamiania. Ponieważ logi serwera niewiele mi pomogły, szukałem rozwiązania, aby sprawdzić działanie usługi mysqld, a jeśli nie jest aktywna, uruchomić ją za pomocą crontaba.
Jak automatycznie rozpocząć MySQL, jeśli to się skończy? [Linux]
Na serwerach MySQL z MadiaDB usługa mysqld powinna zwykle automatycznie uruchamiać się ponownie, gdy zatrzyma się z różnych powodów. Jeśli tak się nie stanie, poniższy skrypt będzie okresowo sprawdzał, czy demon mysqld jest uruchomiony i pomagał automatycznie uruchomić MySQL, jeśli zostanie 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, uruchamiając polecenie: “./autostart_mysql.sh“.
![Jak automatycznie rozpocząć MySQL, jeśli to się skończy? [Linux]](https://stealthsettings.com/wp-content/uploads/2023/11/Autostart-mysql-service.webp)
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 scenariusz “autostart_mysql.sh” uruchamiany co 3 minuty.
Jak dodać skrypt do księgowego?
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.