Sprache:

Suche

Automatischer Neustart eines abgestürzten MySQL-Dienstes mit Cron unter Ubuntu

  • Teilen:
Automatischer Neustart eines abgestürzten MySQL-Dienstes mit Cron unter Ubuntu

MySQL kann abstürzen, wenn ihm der Speicher ausgeht oder ein anderes Problem auftritt. In den meisten Fällen können Sie dies durch einen einfachen Neustart des MySQL-Dienstes beheben.

Lesen Sie auch: Einrichten von VueJS auf Ubuntu

Um zu sehen, ob MySQL läuft oder nicht, führen Sie aus:

sudo service mysql status

Wenn MySQL nicht verfügbar ist, können Sie es mit neu starten:

sudo service mysql restart

Aber was ist, wenn Sie im Urlaub sind und die Website Ihres Kunden nicht erreichbar ist? Sicherlich gibt es eine Möglichkeit, diesen Prozess in Ubuntu mit den folgenden einfachen Schritten zu automatisieren.

Erstellen eines Cron-Skripts zum automatischen Neustart von MySQL

Sie können cron so konfigurieren, dass es automatisch den Status des MySQL-Servers überprüft und ihn neu startet, wenn er abstürzt. Natürlich ist dies keine dauerhafte Lösung für Ihren undichten MySQL-Server, aber es kann Ihnen Zeit verschaffen, bis Sie in der Lage sind, weitere Untersuchungen anzustellen.

Als erstes müssen wir ein einfaches BASH-Skript erstellen und es im Home-Ordner (oder wo auch immer Sie wollen) speichern und dann cron anweisen, dieses BASH-Skript einmal pro Minute auszuführen.

Sie können dieses Skript überall ablegen, aber in diesem Beispiel werden wir es im Home-Ordner ablegen.

Wechseln Sie in das Verzeichnis des Home-Ordners.

cd /home/

Erstellen Sie hier ein neues Verzeichnis namens scripts.

sudo mkdir scripts

Wechseln Sie in dieses Verzeichnis.

cd scripts

Erstellen Sie in diesem Verzeichnis eine neue Datei mit dem Namen mysqlmon.sh  unter Verwendung der nano Text-Editor.

sudo nano mysqlmon.sh

Fügen Sie das folgende Skript ein.

/home/scripts/mysqlmon.sh
#!/bin/bash

# Check if MySQL is running
sudo service mysql status > /dev/null 2>&1

# Restart the MySQL service if it's not running.
if [ $? != 0 ]; then
    echo -e "MySQL Service was down. Restarting now...\n"
    sudo service mysql restart
else
    echo -e "MySQL Service is running already. Nothing to do here.\n"
fi

Speichern und beenden.

Machen Sie das Skript ausführbar.

Lesen Sie auch: Wie die Datenbank das Design der Website beeinflusst

sudo chmod +x mysqlmon.sh

Testen Sie das Skript zum automatischen Neustart von MySQL

Testen Sie das Skript, indem Sie es ausführen:

Lesen Sie auch: Ubuntu-Server für Laravel einrichten

sudo ./mysqlmon.sh

Wenn MySQL läuft, sollten Sie dies sehen:

MySQL Service is running already. Nothing to do here.

Wenn Sie sehen wollen, was passiert, wenn das Skript feststellt, dass MySQL ausgefallen ist, stoppen Sie den MySQL-Dienst, aber tun Sie dies nur, wenn Ihr Webserver nicht in Betrieb ist! Wenn Ihr Server in Betrieb, aber nicht ausgelastet ist, sollte das Stoppen und Starten des MySQL-Servers nur ein paar Sekunden dauern.

sudo service mysql stop

Testen Sie nun das Skript erneut, indem Sie es ausführen:

sudo ./mysqlmon.sh

Ausgabe:

MySQL Service was down. Restarting now..

Der MySQL-Dienst sollte wieder funktionieren

sudo service mysql status

Das Skript zum automatischen Neustart von MySQL zu Crontab hinzufügen

Wenn Sie dieses Skript zu crontab hinzufügen, überprüft der Server den MySQL-Dienst einmal pro Minute und startet ihn neu, wenn er nicht läuft.

Öffnen Sie crontab (wenn Sie aufgefordert werden, einen Texteditor zu wählen, wählen Sie nano).

sudo crontab -e

Fügen Sie in crontab die folgende Zeile am Ende der Datei hinzu.

crontab

* * * * * /home/scripts/mysqlmon.sh > /dev/null 2>&1

Speichern und beenden (presse CTRL + X, Presse Y und drücken Sie dann ENTER)

Crontab testen

Um zu testen, ob crontab das Skript einmal pro Minute ausführt, müssen Sie den MySQL-Dienst vorübergehend anhalten.

sudo service mysql stop

Sie können nun mit folgendem Befehl testen, ob MySQL läuft.

sudo service mysql status

Wenn MySQL ausgefallen ist, warten Sie mindestens eine Minute, bis die Crontab ausgeführt wird. Wenn der MySQL-Dienst nach zwei Minuten immer noch nicht funktioniert, ist etwas mit Ihrem Cron-Skript schief gelaufen. Starten Sie MySQL erneut mit sudo service mysql start.

Lesen Sie auch: PHPStorm unter Ubuntu installieren

TWT Staff

TWT Staff

Writes about Programming, tech news, discuss programming topics for web developers (and Web designers), and talks about SEO tools and techniques