Bei der Verwaltung von Linux-Datenbankservern kann das unerwartete Herunterfahren des mysqld-Dienstes zu erheblichen Unannehmlichkeiten führen. In diesem Tutorial erfahren Sie, wie Sie mithilfe eines Skripts und einer Crontab den Start von MySQL automatisieren, wenn es aus verschiedenen Gründen stoppt.
Aus unklaren Gründen kann es sein, dass der mysqld-Daemon in bestimmten Situationen oder zu bestimmten Zeiten plötzlich stoppt und nicht automatisch neu startet. Da die Serverprotokolldateien diesbezüglich keine nützlichen Informationen liefern, habe ich nach einer Lösung gesucht, um den Status des mysqld-Dienstes zu überwachen. Daher sollte in der Situation, in der es nicht aktiv ist, der automatische Neustart mittels eines Cronjobs initiiert werden.
Sehen wir uns die Schritt-für-Schritt-Anleitung zur Lösung dieses Problems an. (Getestet am Linux Debian 12)
So automatisieren Sie den Start von MySQL, wenn es stoppt
Der erste Schritt besteht darin, das Skript zu erstellen, das den mysqld-Dienst neu startet, wenn er gestoppt wird.
1. Öffnen Sie einen Texteditor (z. B nano
oder vi
) und kopieren Sie das folgende Skript in eine neue Datei. Sie können beispielsweise Folgendes verwenden:
nano /path/to/your/script.sh
Kopieren Sie das Skript:
#!/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
Speichern und schließen Sie den Texteditor.
2. Erteilen Sie dem Skript Ausführungsrechte, um sicherzustellen, dass es ausgeführt werden kann:
chmod +x /path/to/your/script.sh
3. Fügen Sie das folgende Skript hinzu crontab (Befehl: crontab -e
ermöglicht Ihnen das Bearbeiten):
*/3 * * * * /path/to/your/script.sh
Die obige Zeile gibt an, dass das Skript alle 3 Minuten ausgeführt wird. Symbol */3
bedeutet „alle 3 Minuten“. Im Grunde automatisieren Sie mit dieser Zeile den Start von MySQL script.sh
.
4. Speichern und schließen Sie die Datei crontab.
Nun, Ihr Skript script.sh
wird automatisch alle 3 Minuten ausgeführt, um den Dienststatus zu überprüfen mysqld
und ggf. neu starten.
Wenn etwas schief geht und Sie Hilfe benötigen, beantworten wir gerne Ihre Kommentare.