Połącz środowisko robocze MySQL z kontenerem MySQL


9

Wyciągnąłem pojemnik MySQL z Dockerhub i działa on na moim Macbooku Pro, jak widać poniżej

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
12cd3deaa3f0        mysql:latest        "/entrypoint.sh mysql"   47 hours ago        Up 10 minutes       3306/tcp            mysqldb

Następnie pobrałem warsztat MySQL i próbowałem połączyć go z kontenerem MySQL, ale to nie działa. Pokazuje błąd połączenia.

Your connection attempt failed for user 'root' from your host to server at 192.168.99.102:3306:
Can't connect to MySQL server on '192.168.99.102' (60)

Adres IP z maszyny dokującej to

docker-machine ip default
192.168.99.100

a port z MySQL to 3306, jak widać powyżej.

Aby wyeksportować port MySQL, próbowałem z instrukcją

docker run -d -P mysql:latest mysqldb

To w ogóle nie działa. Co ja robię źle?

Odpowiedzi:


9

Wygląda na to, że uruchomiłeś kontener bez ustawiania -p 3306:3306parametru. Wygląda też na to, że źle wpisałeś adres IP nazwy hosta w MySQL Workbench. Polecam zacząć od zera, postępując zgodnie z tymi instrukcjami:

  1. Uruchom serwer mysql. (Zmień hasło adminna dowolne)

docker run -e MYSQL_ROOT_PASSWORD=admin --name mysql -d -p=3306:3306 mysql

  1. uzyskaj adres IP domyślnej maszyny wirtualnej dokera, uruchamiając

docker-machine ip default

  1. Skopiuj adres IP, który otrzymasz w wyniku poprzedniego polecenia. (w twoim przypadku powinno to być 192.168.99.100)
  2. Otwórz MySQL Workbench i utwórz nowe połączenie. Wklej skopiowany adres IP w polu „Nazwa hosta”.

Powinieneś już być gotowy.


1

Parametr -Pwiąże eksportowane porty pojemnika automatycznie dostępnych portów gospodarza.

Poniższa komenda powinna powiązać port 3306 kontenerów z portem 3306 hosta. Zobacz: Opublikuj lub ujawnij port

docker run -d -p 3306:3306 mysql:latest mysqldb

docker run -d -p 3306:3306 mysql:5.7.9 dbmysqlWpisałem instrukcję i jako wynik mam, d38a0f208bcda50132d7f6f679c9282b0d90b275610b8d19ac93bf82d94eea43ale nadal nie mogę uzyskać dostępu do kontenera mysql za pomocą środowiska roboczego mysql. Po wpisaniu dokera ps pokazuje mid6b44992ec77 mysql:5.7.9 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp dbmysql
zero_coding
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.