Heim >Betrieb und Instandhaltung >Docker >Was soll ich tun, wenn Docker keine Verbindung zu MySQL herstellen kann?
Wenn Sie Docker zum Erstellen einer MySQL-Datenbank verwenden, tritt manchmal das Problem auf, dass keine Verbindung zu MySQL hergestellt werden kann. Dies kann auf Netzwerkprobleme, Konfigurationsprobleme oder andere Probleme zurückzuführen sein. In diesem Artikel besprechen wir, wie dieses Problem gelöst werden kann.
1. Überprüfen Sie die Netzwerkverbindung
Zuerst müssen wir sicherstellen, dass die Netzwerkverbindung zwischen dem Docker-Container und dem lokalen Host normal ist, was durch den Ping-Befehl erkannt werden kann. Öffnen Sie ein Terminal auf dem lokalen Host und führen Sie den folgenden Befehl aus:
$ ping <docker容器IP>
Unter anderem kann die
Wenn Sie normal pingen können, bedeutet das, dass die Netzwerkverbindung normal ist; wenn Sie nicht pingen können, müssen Sie den Netzwerkfehler beheben.
2. Überprüfen Sie die Konfiguration des MySQL-Containers
Wenn die Netzwerkverbindung normal ist, müssen wir die Konfigurationsdatei des MySQL-Containers überprüfen. Führen Sie den folgenden Befehl aus:
$ docker exec -it <container ID> /bin/bash $ cd /etc/mysql $ cat my.cnf
wobei
Überprüfen Sie, ob die Konfiguration in der my.cnf-Datei korrekt ist, insbesondere für die Netzwerkeinstellungen.
3. Erstellen Sie einen MySQL-Benutzer und autorisieren Sie ihn.
Wenn die Konfiguration des MySQL-Containers normal ist, müssen Sie prüfen, ob der entsprechende MySQL-Benutzer erstellt und autorisiert wurde.
Führen Sie im MySQL-Container den folgenden Befehl aus:
$ mysql -u root -p
Geben Sie das Root-Passwort ein, um die MySQL-Konsole aufzurufen.
Führen Sie die folgende SQL-Anweisung aus, um einen Benutzer zu erstellen:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
wobei „Benutzername“ und „Passwort“ der Benutzername bzw. das Passwort sind, die Sie erstellen möchten.
Autorisieren Sie dann den Benutzer:
GRANT ALL ON *.* TO 'username'@'%';
wobei „Benutzername“ der Benutzername ist, den Sie gerade erstellt haben.
Führen Sie abschließend den folgenden Befehl aus, um die Änderungen zu speichern und die MySQL-Konsole zu verlassen:
FLUSH PRIVILEGES; EXIT;
4. Überprüfen Sie die Firewall-Einstellungen
Wenn Sie immer noch keine Verbindung zu MySQL herstellen können, liegt möglicherweise ein Problem mit den Firewall-Einstellungen vor. Wir müssen bestätigen, ob eine Firewall MySQL-Verbindungen blockiert.
Führen Sie den folgenden Befehl auf dem lokalen Host aus, um zu bestätigen, ob der Port von der Firewall belegt ist:
$ sudo netstat -tunlp | grep <MySQL容器端口>
Dabei ist
Wenn der Port bereits belegt ist, müssen Sie den Port aktivieren. Führen Sie am Beispiel des Ubuntu-Systems den folgenden Befehl aus, um den Port zu öffnen:
$ sudo ufw allow <MySQL容器端口>/tcp
Unter anderem ist
Wenn es sich um ein anderes Betriebssystem handelt, müssen Sie den Port entsprechend den entsprechenden Betriebssystemeinstellungen öffnen.
5. Starten Sie den MySQL-Container neu. Wenn die oben genannten vier Schritte das Problem nicht lösen, können wir versuchen, den MySQL-Container neu zu starten.
Sie können den folgenden Befehl verwenden, um den MySQL-Container neu zu starten:
$ docker restart <container ID>
wobei
Zusammenfassung
Das Problem, dass keine Verbindung zu Docker MySQL hergestellt werden kann, kann viele Gründe haben, und wir müssen sie nacheinander beseitigen. Überprüfen Sie zunächst, ob die Netzwerkverbindung normal ist, überprüfen Sie dann die Konfiguration des MySQL-Containers, erstellen Sie einen MySQL-Benutzer und autorisieren Sie ihn, überprüfen Sie die Firewall-Einstellungen und versuchen Sie schließlich, den MySQL-Container neu zu starten. Wenn keiner der oben genannten Schritte das Problem löst, können Sie einen Wechsel zu einem anderen MySQL-Spiegel oder die Suche nach anderen Lösungen in Betracht ziehen.
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn Docker keine Verbindung zu MySQL herstellen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!