Назад | Перейти на главную страницу

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

Недавно я установил би-коннектор 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 или таблица?

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

Оказывается, когда исполняемый файл 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.

Пожалуйста !