Problem:
Sie möchten eine Verbindung zu einer MySQL-Instanz herstellen, die in einem ausgeführt wird Docker-Container von Ihrem Host-Computer, aber es tritt ein Fehler im Zusammenhang mit der Socket-Verbindung auf.
Ihre Docker-Datei enthält die folgenden Änderungen:
Erfolgreicher Befehl Reihenfolge:
Verbinden aus dem Inneren heraus Container:
Sobald Sie sich im Container befinden, können Sie erfolgreich eine Verbindung zu MySQL herstellen, indem Sie Folgendes verwenden: mysql -u root
Fehlgeschlagener Versuch vom Host-Computer:
Wenn Sie versuchen, eine Verbindung vom Host mit mysql -P 12345 -uroot herzustellen, erhalten Sie eine Fehlermeldung, die darauf hinweist, dass dies nicht möglich ist Stellen Sie über den Socket eine Verbindung zu MySQL her.
Um vom Hostcomputer aus eine Verbindung zur MySQL-Instanz im Docker-Container herzustellen, verwenden Sie den folgenden Befehl:
mysql -h localhost -P 3306 --protocol=tcp -u root
Ersetzen Sie 3306 durch die Portnummer, die Sie vom Docker-Container weitergeleitet haben (in diesem Fall 12345).
Erklärung:
Da MySQL im Docker-Container ausgeführt wird, ist die Socket-Verbindung nicht verfügbar. Durch die Einstellung „--protocol=tcp“ im MySQL-Befehl können Sie angeben, dass die Verbindung stattdessen über TCP hergestellt werden soll.
Das obige ist der detaillierte Inhalt vonWie kann ich von Ihrem Host-Computer aus eine Verbindung zu einem MySQL-Docker-Container herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!