Подключение к Mongodb Bi-разъем удаленно в докере

Недавно я установил биконнектор mongodb, чтобы использовать Tableau для визуализации моих данных. Я успешно установил его в докер-контейнер с помощью образа debian. Соединитель успешно обращается к моему удаленному экземпляру Mongo и сгенерировал правильную схему.

Я попытался подключиться к своему контейнеру и установил клиент mysql, чтобы проверить, работает ли коннектор, это нормально: результат

Но когда я выхожу из контейнера и пытаюсь с хост-машины, вот что я получаю (я сопоставил порт контейнера 3307 с портом хоста 9015)

$ mysql --host localhost --protocol tcp --port 9015 ОШИБКА 2013 (HY000): потеря соединения с сервером MySQL при "чтении исходного пакета связи", системная ошибка: 2

Я пытался с другой версией клиента MySQL, я пытался сопоставить разные порты, я пробовал 127.0.0.1 вместо localhost, ничего не работает.

Поэтому мне было интересно, должен ли соединитель быть на той же машине, что и клиент mysql или таблица?

1 ответ

Решение

Хорошо, я нашел проблему. Теперь это работает как шарм!

Оказывается, что когда в контейнере исполняемому файлу mongodrdl требуется установить параметр --addr с именем хоста контейнера в качестве имени контейнера (не работает с localhost или 127.0.0.1), вот так:

/ usr / local / bin / mongosqld --addr mongo-bi-connector: 3307 --schema schema.drdl --mongo-uri $ MONGO_URI

Я опубликовал свои источники на github и образ докера на док-хабе.

https://github.com/emmanuelvisage/docker-mongo-bi-connector https://hub.docker.com/r/visage/mongo-bi-connector/

Я также добавил поддержку аутентификации

Имейте в виду, что это включает в себя лицензионный контент и требует лицензии Mongodb Entreprise.

Пожалуйста!

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