Докер не может подключиться к mariadb с локального хоста с другим пользователем - PullRequest
0 голосов
/ 26 мая 2019

Привет, я следовал этому руководству по докеру для mariabdb , а также проверил этот stackoverflow . Я могу начать работу с контейнером mariadb без проблем и подключиться с помощью пароля root и mypass с помощью команды mysql -h0.0.0.0 -uroot -pmypass. Однако после того, как я создаю нового пользователя и предоставляю ему все, я не могу подключиться с этим конкретным именем пользователя и паролем. Я получаю сообщение об отказе в доступе.

Вот вывод docker ps command;

CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
268c36eac13a        mariadb/server:10.3   "docker-entrypoint.s…"   31 minutes ago      Up 31 minutes       0.0.0.0:3306->3306/tcp   mariadbtest

Я подключаюсь к контейнеру mariadb с помощью docker exec -it 268c36eac13a /bin/sh и запускаю эти команды;

mysql -uroot -pmypass
create database emails;
grant all on emails.* to 'testUser'@'localhost' identified by '123456';

Затем от localhost, когда я запускаюсь mysql -h0.0.0.0 -utestUser -123456 Я получаю Access denied for user 'testUser'@'172.17.0.1' (using password: YES) ошибку.

Спасибо за помощь!

1 Ответ

1 голос
/ 26 мая 2019

Я думаю, что это проблема с сетью: вы разрешаете пользователю testUser подключаться к вашей базе данных к localhost, но это означает, что он сможет подключаться только с клиента, работающего внутри контейнера. Как вы можете видеть, когда вы входите в свой контейнер MariaDB с хост-компьютера, вы получаете адрес докера хоста 172.17.0.1.

Одно из решений - разрешить вашему пользователю подключаться с любого ip:

grant all on emails.* to 'testUser'@'%' identified by '123456';

или IP из данной подсети. Вы можете проверить, как это сделать, в CREATE USER docs .

Другим решением было бы добавить пользователя для IP хоста. Вы можете получить IP-адрес хоста из контейнера и добавить пользователя для этого IP-адреса. О том, как получить IP хоста из контейнера, проверьте этот вопрос .

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