Невозможно подключиться к Docker Mysql с хоста Windows - PullRequest
0 голосов
/ 28 июня 2019

Я взял последний образ докера mysql, но я не могу подключиться к нему с хоста Windows.

Выполнены следующие команды:

 docker run -p 3306:3306 --hostname=sql --name=mysql_working -d mysql/mysql-server:latest

Я вижу IP-адрес с помощью следующей команды:

docker inspect --format "{{ .NetworkSettings.IPAddress }}" 3ddbeeeb27e9enter

Когда я делаю телнет, время ожидания

telnet sql 3306

то же самое для пинга

ping <ip address from docker>

Может кто-нибудь посоветовать, пожалуйста, чего не хватает?

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Вы открываете порт 3306, поэтому контейнер Sql доступен для вашего хоста.

Если вы работаете на компьютере Windows, наберите ipconfig

Или для Linux:

ifconfig или ip addr, чтобы найти IP-адрес вашего хост-компьютера и использовать этот IP-адрес.для подключения к Sql.

Вы также можете проверить журналы докер-контейнеров по docker logs -f container_id здесь -f предназначен для отслеживания журналов.

0 голосов
/ 28 июня 2019

шаг1: вам нужно изменить пароль по умолчанию MySQL после первой установки в Docker-контейнере

docker logs <container_name or container_id>
docker logs <container_name or container_id> 2>&1 | grep GENERATED

step2: отмечен известный пароль по умолчанию

step3:

docker exec -it <container_name or container_id> mysql -uroot -p

Введите пароль по умолчанию

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

Для получения дополнительной информации от шага 1 до шага 3 проверьте здесь

step4: добавить нового пользователя в MySQL в качестве имени пользователя root и разместить любого с паролем

create user 'root'@'%' identified by 'password';

step5: предоставить все права этому пользователю

grant all privileges on *.* to 'root'@'%' with grant option;

Для получения дополнительной информации от шага 4 до шага 5 проверьте здесь

шаг 6: выход из контейнера докера: нажмите ctrl+p+q клавиши (не плюс комбинация клавиш ctrl с p и q)

step7: предположим, что вы на хост-машине (иначе вы даете IP-адрес хост-машины вместо localhost)

telenet -l root localhost 3306  

Требуется ввести пароль (мы указали пароль в шаге 4)

нажмите клавишу ctrl+] (не плюс сочетание клавиш ctrl с])

Телент успешно подключился .. !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...