Heim >Betrieb und Instandhaltung >Docker >Was soll ich tun, wenn Docker keine Verbindung zu MySQL herstellen kann?

Was soll ich tun, wenn Docker keine Verbindung zu MySQL herstellen kann?

PHPz
PHPzOriginal
2023-04-18 09:48:125862Durchsuche

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 mit dem Befehl docker inspect abgerufen werden.

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 die ID des MySQL-Containers ist.

Ü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 die vom MySQL-Dienst bereitgestellte Portnummer.

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 die vom MySQL-Dienst bereitgestellte Portnummer.

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 die ID des MySQL-Containers ist.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn