在Docker中远程连接到Mongodb双连接器

我最近安装了mongodb双连接器,以便使用Tableau来可视化我的数据,我成功地将它安装在使用debian映像的docker容器中。 连接器成功访问我的远程mongo实例,并生成了适当的模式。

我试图连接到我的容器,并安装了一个MySQL客户端来检查连接器是否工作,这很好: 结果

但是,当我退出容器,并从我的主机尝试,这里是我得到的(我把3307容器的端口映射到我的9015主机端口)

$ mysql –host localhost –protocol tcp –port 9015 ERROR 2013(HY000):在'读取初始通信数据包'时丢失与MySQL服务器的连接,系统错误:2

我已经尝试了不同的MySQL客户端版本,我试图映射不同的端口,我已经尝试127.0.0.1而不是本地主机,没有任何工作。

所以我想知道,连接器必须在同一台机器上,而不是MySQL客户端或画面?

好的,我发现了这个问题。 现在它就像一个魅力!

事实certificate,当在一个容器中,mongodrdl可执行文件需要使用容器的主机名作为容器名称来设置–addr选项(不适用于localhost或127.0.0.1)像这样:

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

我已经在github上发布了我的源代码,并在docker中心发布了一个docker镜像。

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

我也添加了authentication支持

请记住,这包括许可的内容,并需要一个Mongodb企业许可证。

别客气 !