Search code examples
mongodbmongo-shell

how can I connect to a remote mongo server from Mac OS terminal


I would like to drop into the mongo shell in the terminal on my MacBook. However, I'm interested in connecting to a Mongo instance that is running in the cloud (compose.io instance via Heroku addon). I have the name, password, host, port, and database name from the MongoDB URI:

mongodb://username:[email protected]:10011/my_database

I have installed mongodb on my MacBook using Homebrew not because I want Mongo running on my Mac, but just to get access to the mongo shell program in order to connect to this remote database.

However, I can't find the right command to get me the full shell access I would like. Using instructions found here http://docs.mongodb.org/manual/reference/program/mongo/ (search for "remote") I am able to get what looks like a connection, but without giving my username or password I am not fully connected. Running db.auth(username, password) returns 1 (as opposed to "auth fails" when I provide incorrect username and password), but I continue to get an "unauthorized" error message when issuing the show dbs command.


Solution

  • You are probably connecting fine but don't have sufficient privileges to run show dbs.

    You don't need to run the db.auth if you pass the auth in the command line:

    mongo somewhere.mongolayer.com:10011/my_database -u username -p password
    

    Once you connect are you able to see collections?

    > show collections
    

    If so all is well and you just don't have admin privileges to the database and can't run the show dbs