Heim > Artikel > Betrieb und Instandhaltung > Wie Docker das Problem löst, dass MySQL nicht gestartet werden kann
Wenn Sie Docker zum Bereitstellen von MySQL verwenden, kann es zu Startfehlern kommen. In diesem Artikel wird ausführlich erläutert, wie Sie diese Situation lösen können.
1. Problembeschreibung
Mysql ist eine sehr beliebte relationale Datenbank und Docker ist eine Containertechnologie. Mithilfe von Docker können wir die MySQL-Datenbank problemlos bereitstellen, aber manchmal schlägt das Starten des MySQL-Containers fehl. Wir haben festgestellt, dass der Start fehlgeschlagen ist, als der folgende Docker-Befehl zum Starten des MySQL-Containers verwendet wurde:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=mypassword -d mysql:5.7
2. Problemanalyse
Beim Starten des Containers gemäß dem obigen Befehl gibt der Parameter -e die Umgebungsvariable an, wobei MYSQL_ROOT_PASSWORD die ist Passwort des MySQL-Root-Benutzers. MySQL: 5.7 ist eine Spiegelversion der MySQL-Datenbank. Manchmal kommt es jedoch vor, dass der Container nicht gestartet werden kann. Zu diesem Zeitpunkt können wir die Fehlerursache analysieren, indem wir das Startcontainerprotokoll anzeigen.
docker logs mysql
hat festgestellt, dass der MySQL-Container beim Starten abgestürzt ist. Daher müssen wir die Fehlerursache finden.
3. Problemlösung
Wir können dieses Problem durch die folgenden Schritte lösen:
1. Überprüfen Sie, ob der Container läuft
docker ps
Wenn der Container bereits läuft, müssen wir nur das Containerprotokoll überprüfen.
2. Überprüfen Sie das Containerprotokoll
docker logs mysql
Die folgende Fehlermeldung finden Sie im Protokoll:
[ERROR] [MY-012144] [InnoDB] ./ibdata1 can't be opened in read-write mode [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error. [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine: 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. [ERROR] [MY-010119] [Server] Aborting
Durch die Analyse des Fehlerprotokolls können wir erkennen, dass der Grund für den Mysql-Startfehler darin besteht, dass das Datenverzeichnis nicht beschreibbar ist. Um dies zu beheben, müssen wir herausfinden, wo sich das Datenverzeichnis befindet, und seine Berechtigungen auf „schreibbar“ setzen.
3. Sehen Sie sich das Datenverzeichnis des MySQL-Containers an.
docker inspect mysql | grep -i datadirFolgender Befehl zum Anzeigen und Ändern von Verzeichnisberechtigungen:
"DataDir": "/var/lib/mysql"Dann können wir den Container neu starten:
docker exec -it mysql bash chmod -R 777 /var/lib/mysql exitNach den oben genannten Schritten kann der MySQL-Container erfolgreich gestartet werden, wenn wir ihn erneut starten. 4. ZusammenfassungDieser Artikel bietet eine Lösung für das Versagen von Docker beim Starten von MySQL. Wenn der MySQL-Container nicht startet, können wir die Fehlerursache durch Überprüfen des Containerprotokolls ermitteln und rechtzeitig beheben.
Das obige ist der detaillierte Inhalt vonWie Docker das Problem löst, dass MySQL nicht gestartet werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!