2

I recently installed the mongodb Bi-connector in order to use Tableau to visualize my data I successfully installed it in a docker container using a debian image. The connector successfully access my remote mongo instance and has generated the proper schema.

I tried to connect to my container and installed a mysql client to check if the connector was working, it's fine : result

But when I exit the container and I try from my host machine here is what I get (I mapped the 3307 container's port to my 9015 host port)

$ mysql --host localhost --protocol tcp --port 9015 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2

I've tried with different mysql client version, I ve tried mapping different ports, I ve tried 127.0.0.1 instead of localhost, nothing works.

So I was wondering, does the connector has to be on the same machine than the mysql client or tableau ?

2
  • Port 9014 or port 9015? Commented Mar 6, 2017 at 16:22
  • 9015 sorry typo
    – Sanduckhan
    Commented Mar 6, 2017 at 20:15

1 Answer 1

2

Alright I found the issue. Now It works like a charm !

Turns out that when in a container the mongodrdl executable needs the --addr option to be set with the host name of the container as the container name (doesn't work with localhost or 127.0.0.1) Like this :

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

I have published my sources on github and a docker image on the docker hub.

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

I have added authentication support as well

Keep in mind that this include licensed content and requires a Mongodb entreprise license.

You're welcome !

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .