Как разрешить внешние соединения на образе Docker MySQL - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь получить root-доступ к своему образу Docker MySQL, который я создал.Я поместил переменные окружения для ROOT_PASSWORD и DATABASE, так что я уверен, что пароль существует, и я могу получить доступ к root с помощью командной строки.Проблема заключается в попытке получить доступ к root с помощью MySQLWorkbench или SequelPro.У меня установлено имя хоста localhost, user - root, а port - 3307 (я назначил этот порт при запуске команды для создания базы данных).Когда я пытаюсь подключиться, я получаю сообщение об ошибке

«Не удалось подключиться к пользователю« root »к серверу MySQL на локальном хосте: 3307: узлу не разрешено подключаться к этому серверу MySQL»

Я попытался изменить номер порта на 3306, изменив IP на 127.0.0.1, но ошибка не исчезла.Я проверил сообщение на GitHub, в котором предлагалось, чтобы у пользователя root был "%" в качестве хоста, и этого можно было бы изменить, изменив мой bind-адрес.Проблема в том, что я не могу найти файл конфигурации mysql.cnf ... Я даже не думаю, что он существует в моей системе

https://i.imgur.com/eeNdg4J.png

1 Ответ

0 голосов
/ 26 мая 2019

Безошибочный способ получить доступ - это:

docker inspect mysql_container_name

, чтобы найти IP-адрес.

Тогда вы можете использовать что-то вроде:

mysql -u root -p -h <docker container ip address>

Aпара других замечаний:

  • Порт mysql по умолчанию - 3306, поэтому вам следует также дважды проверить, что вы случайно не отобразили его обратно.
  • Переменная среды называется MYSQL_ROOT_PASSWORD notROOT_PASSWORD
  • Возможно, вам потребуется указать конфигурацию, которая связывает и прослушивает сетевой интерфейс, а не сокет
  • Файл конфигурации находится внутри контейнера докера.Вместо этого вы можете сопоставить том для использования локального файла:

docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

Подробнее см. Здесь: https://docs.docker.com/samples/library/mysql/

...