Подключение к 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.
Пожалуйста!