Problem
Beim Versuch, MySQL mit systemctl zu starten, schlägt der Start fehl, zum Beispiel:
# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: inactive (dead) Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html
# systemctl start mysqld Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
Lösung
Dafür kann es mehrere Ursachen geben. Einige (aber nicht beschränkt auf) Beispiele sind:
- Ein Tippfehler in einer Konfigurationsoption in der MySQL-Konfigurationsdatei.
- Vorhandensein einer nicht mehr verwendeten Option in der MySQL-Konfigurationsdatei.
- Falsche Berechtigung auf Dateisystemebene.
Um herauszufinden, welcher Fehler dazu führt, dass MySQL nicht startet, gibt es mehrere Quellen, die verwendet werden können:
1. Das MySQL-Fehlerprotokoll
Standardmäßig befindet sich diese in /var/log/mysqld.log kann sich aber an einem anderen Ort befinden, wenn der Protokollfehler Option ist in der MySQL-Konfigurationsdatei festgelegt. Dies ist der beste Ausgangspunkt, aber je nach Fehler ist der Startprozess möglicherweise noch nicht einmal weit genug gekommen, um in das MySQL-Fehlerprotokoll zu schreiben.
2. Überprüfen Sie die Ausgabe von „systemctl status mysqld“
Auch die Ausgabe von „systemctl status mysqld“ kann hilfreich sein, um die Fehlerursache zu identifizieren.
# systemctl status mysqld
3. Das systemd-Journal
Das systemd-Journal kann dabei helfen, der Fehlerursache auf den Grund zu gehen. Sie können es zum Beispiel interaktiv durchsuchen mit:
# journalctl -xe
Wenn Sie das Journal hochladen müssen, um es vom Anbieter analysieren zu lassen, müssen Sie feststellen, wo es sich befindet. Dies ist systemspezifisch. Bei der Standardkonfiguration befindet sich das Journal beispielsweise unter CentOS/RHEL 7 in einem Unterverzeichnis unter /run/log/journal/ , zum Beispiel /run/log/journal/1ffd55f216ea46bd82d0f144065cc29b/system.journal. Ein anderer Speicherort kann /var/log/journal sein.
Oder Sie können das Journal wie folgt exportieren:
# journalctl > journal.log
Sobald die Fehlermeldung ermittelt wurde, verwenden Sie diese, um die Grundursache zu untersuchen.