Heim >Datenbank >MySQL-Tutorial >Wie stellt man vom Host-Rechner aus eine Verbindung zu einer Docker-MySQL-Instanz her?

Wie stellt man vom Host-Rechner aus eine Verbindung zu einer Docker-MySQL-Instanz her?

Barbara Streisand
Barbara StreisandOriginal
2024-11-29 08:39:11312Durchsuche

How to Connect to a Dockerized MySQL Instance from the Host Machine?

Herstellen einer Verbindung zu MySQL in einem Docker-Container vom Host aus

Problembeschreibung:

Wann Beim Versuch, vom Hostcomputer aus eine Verbindung zu einer MySQL-Datenbank herzustellen, die in einem Docker-Container ausgeführt wird, wird die Fehlermeldung angezeigt: „Es kann keine Verbindung zum lokalen MySQL-Server über den Socket hergestellt werden.“ '/var/run/mysqld/mysqld.sock'".

Docker-Datei:

Die folgende Docker-Datei wird zum Erstellen des MySQL-Containers verwendet:

FROM ubuntu:14.04.3
RUN apt-get update && apt-get install -y mysql-server
RUN grep -v bind-address /etc/mysql/my.cnf > temp.txt && mv temp.txt /etc/mysql/my.cnf
EXPOSE 3306
CMD /etc/init.d/mysql start && tail -F /var/log/mysql.log

Fehlgeschlagene Versuche:

Trotz Erfolg Das Starten der MySQL-Instanz im Container und das Herstellen einer Verbindung vom Host mit mysql -P 12345 -uroot zu ihr führt zu einem Socket-Fehler.

Lösung:

Herstellen einer Verbindung zu Um die MySQL-Datenbank im Docker-Container vom Host-Computer aus auszuführen, sind die folgenden Schritte erforderlich:

  1. Geben Sie die Host-Adresse an als 'localhost'.
  2. Geben Sie den Port an, auf dem die Docker-MySQL-Instanz lauscht (standardmäßig 3306).
  3. Setzen Sie das Protokoll auf „tcp“, da auf die Docker-MySQL-Instanz nicht über a zugegriffen werden kann Unix-Socket.

Befehl für Host Verbindung:

mysql -h localhost -P 3306 --protocol=tcp -u root

Ändern des Ports:

Wenn ein anderer Port verwendet wird, um die MySQL-Instanz im Docker-Container verfügbar zu machen (z. B. 12345) , sollte es auch im Verbindungsbefehl angegeben werden:

mysql -h localhost -P 12345 --protocol=tcp -u root

Das obige ist der detaillierte Inhalt vonWie stellt man vom Host-Rechner aus eine Verbindung zu einer Docker-MySQL-Instanz her?. 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