Подключение к контейнеру MySQL из Mysqlworkbench

Я создал контейнер MySQL из образа, нашел его IP-адрес, но не смог подключиться из командной строки или mysqlworkbench. Вот моя конфигурация.

Докерфайл

FROM mysql

ENV MYSQL_DATABASE=test
ENV MYSQL_ROOT_PASSWORD=password

COPY ./schema.sql /docker-entrypoint-initdb.d/

Команда

docker build -t mysql-image .
&& docker run
-p 6603:3306
--name mysql-container
mysql-image 

Я вижу, что контейнер запускается из docker container ls. Я нашел его IP-адрес с помощью этой команды с помощью этого отвечать.

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-container

Он дал мне этот ip -> 172.17.0.2

Ошибка

enter image description here

Редактировать

Связанный повторяющийся тег не является решением, проблема заключается в следующей команде, которая ввела меня в заблуждение.

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-container

Ваш phpmyadmin работает? проверьте это на localhost:вашMySQLportNumber

Invincible 22.05.2019 10:25

У меня нет phpmyadmin, мой env - nodejs

Developer 22.05.2019 10:26

да localhost работал, на самом деле 127.0.0.1

Developer 22.05.2019 10:27

Я думаю, вам понадобится phpmysql, чтобы увидеть интерфейс mysql... если нет, то проверьте номер порта mysql (по умолчанию 3306), поэтому в вашем случае попробуйте 127.0.0.1:3306

Invincible 22.05.2019 10:31

Я использовал 127.0.0.1:6603 вместо 172.17.0.2:6603, и это сработало. Связанный ответ, чтобы найти IP-адрес БД, на самом деле ввел меня в заблуждение.

Developer 22.05.2019 10:33
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
2
6
710
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно использовать localhost (127.0.0.1) вместо IP-адреса контейнера (в вашем случае 172.17.0.2) в hostname

почему это так, в учебнике, которому я следовал, в качестве IP-адреса использовалось 172, и это сработало для него, но для меня сработало 127, интересно, почему? и что я должен указать в производственном коде для подключения к БД?

Developer 22.05.2019 11:55

Здесь у вас есть объяснение по этому поводу, stackoverflow.com/questions/24319662/… (в конце ответа)

Schwarz54 22.05.2019 12:07

так что в основном 127 - это режим хоста, а 172 - режим моста?

Developer 22.05.2019 12:31

Что-то в этом роде, я еще не эксперт в докере, и я не могу сказать да, но похоже на то.

Schwarz54 22.05.2019 12:35

Другие вопросы по теме