Die Installation von MySQL in Docker schlägt mit der Fehlermeldung fehl "Verbindung zum lokalen MySQL-Server über Socket nicht möglich"

8

Ich versuche, mysql in einem Docker-Container zu installieren, versuchte verschiedene Bilder von github, es scheint, dass sie alle erfolgreich mysql zu installieren, aber wenn ich versuche, die mysql auszuführen, gibt es einen Fehler:

  

ERROR 2002 (HY000): Verbindung zum lokalen MySQL-Server kann nicht über den Socket '/var/run/mysqld/mysqld.sock'

hergestellt werden

Systemspezifikationen:

  • Ubuntu 12,04 ist auf AWS
  • Docker 0.10.0

Pakete, die ich bisher versucht habe:

Mohammad 23.04.2014, 03:47
quelle

6 Antworten

17

Denken Sie daran, dass Sie eine Verbindung zum aktiven Docker-Container herstellen müssen. Sie möchten wahrscheinlich TCP anstelle von Unix Socket verwenden. Überprüfen Sie die Ausgabe des Befehls docker ps und suchen Sie nach mysql-Containern. Wenn Sie einen finden, verwenden Sie den folgenden mysql-Befehl: mysql -h 127.0.0.1 -P <mysql_port> (Sie finden den Port in docker ps output). Wenn Sie in docker ps output keinen laufenden mysql-Container finden können, versuchen Sie docker images , den mysql-Image-Namen zu finden und versuchen Sie Folgendes: docker run -d -p 3306:3306 tutum/mysql wobei "tutum / mysql" der Image-Name in docker images ist.

    
odk 05.05.2014, 11:59
quelle
9

Ich weiß nicht, wie ich das erreichen kann, aber ich kann MYSQL erreichen, indem ich

eintippe

$ mysql -u Wurzel -h

%Vor% %Vor% %Vor%     
Ben Cassinat 29.05.2015 16:26
quelle
5

Ich hatte das gleiche Problem, tatsächlich habe ich vergessen, den Dienst nach der Installation auszuführen.

Starten Sie den mysql-Server:

%Vor%     
Mega 15.03.2017 13:25
quelle
3

Wenn Sie MySQL nicht auf Ihrem Host installiert haben, müssen Sie im Container ausführen ( Ссылка gibt Erklärungen zu docker run vs docker exec ).

In Anbetracht dessen, dass Ihr Container ausgeführt wird, könnten Sie ihn verwenden %Code% um auf den Client zuzugreifen.

Wenn Sie Docker Compose verwenden und einen MySQL-Datenbankdienst namens Datenbank deklariert haben, können Sie Folgendes verwenden: docker exec yourcontainername mysql -u root -p

    
Jeremy Jumeau 05.10.2016 08:22
quelle
0

Ich könnte etwas spät zur Antwort sein und wahrscheinlich weiß die Welt jetzt davon.

Alles, was Sie brauchen, um Ihre Ports des Andock-Containers zu öffnen, um darauf zuzugreifen. Zum Beispiel beim Ausführen des Containers:

  

docker run --name mysql_container -e MYSQL_ROOT_PASSWORD = root -d    -p 3306:3306 mysql / mysql-server: 5.7

Dadurch kann der mysql Ihres Containers vom Hostcomputer aus erreichbar sein. Später können Sie sich damit verbinden.

  

docker exec -it mysql_container mysql -u root -p

    
Dave Ranjan 03.04.2017 13:21
quelle
0

Schau dir an, was sich in deiner database.yml -Datei befindet. Wenn Sie bereits Ihre einfache Rails-App haben und diese einfach mit Docker umhüllen, sollten Sie (in database.yml ) ändern:

%Vor%

bis

%Vor%

Dabei ist db der Name meines db-Dienstes von docker-compose.yml . Und hier ist mein docker-compose.yml :

%Vor%

Sie starten Ihre App in der Konsole (im App-Ordner) als docker-compose up . Dann WAIT 1 MINUTE (Lassen Sie Ihren mysql-Dienst vollständig laden), bis einige neue Protokolle nicht mehr in der Konsole erscheinen. Normalerweise sollte die letzte Zeile wie

sein
  

db_1 | 2017-12-24T12: 25: 20.397174Z 0 [Hinweis] Ende der Liste von   nicht nativ partitionierte Tabellen

Dann (in einem neuen Terminalfenster) gelten:

%Vor%

und dann

%Vor%

Nachdem Sie Ihre Arbeit beendet haben, stoppen Sie die geladenen Bilder mit

%Vor%

Verwenden Sie nicht docker-compose down hier, denn wenn Sie dies tun, löschen Sie Ihren Datenbankinhalt.

Wenn Sie das nächste Mal Ihre Arbeit fortsetzen wollen, wenden Sie sich an:

%Vor%

Der Rest der Dinge tut genau wie hier erklärt: Ссылка

    
prograils 24.12.2017 11:44
quelle

Tags und Links