2014-11-08 620 views
67

我想放入MacBook終端的mongo shell。不過,我有興趣連接到在雲中運行的Mongo實例(通過Heroku插件實現的compose.io實例)。我有名字,密碼,主機,端口和數據庫從MongoDB的URI名稱:如何從Mac OS終端連接到遠程mongo服務器

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

我一直在使用自制軟件裝不上我的MacBook MongoDB的,因爲我想蒙戈我的Mac上運行,但只是爲了獲得進入到mongo shell程序以連接到這個遠程數據庫。

但是,我無法找到正確的命令來獲得我想要的完整shell訪問權限。使用這裏找到的指令http://docs.mongodb.org/manual/reference/program/mongo/(搜索「遠程」)我能夠得到看起來像一個連接,但沒有給我的用戶名或密碼我沒有完全連接。運行db.auth(username, password)返回1(與提供不正確用戶名和密碼的「auth失敗」相反),但在發出show dbs命令時,我仍然收到「未授權」錯誤消息。

回答

123

您可能連接正常,但沒有足夠的權限運行show dbs

你並不需要運行db.auth如果你通過在命令行中的身份驗證:

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

一旦你連接,你可以看到收藏?

> show collections 

如果是的話一切都很好,你只是沒有管理權限到數據庫中並不能運行show dbs

+0

我可以使用您描述的技術進行連接。但是,我無法運行任何命令,例如「顯示集合」或「顯示用戶」。我渴望得到「未經授權查詢my_db.system.namespaces」錯誤。 – jononomo 2014-11-10 18:06:56

+1

好吧,所以heroku隨機將我的mongo數據庫命名爲與我在dev中使用的名稱不同的名稱。我認爲這基本上是我的問題。 – jononomo 2014-11-10 18:27:51

+0

但是如果我有?authSource = admin到底。它不起作用。 --authenticationDatabase不起作用。 – RomKazanova 2016-04-14 08:28:27

30

隨着蒙戈3.2 and higher只需使用您的連接字符串是:

mongo mongodb://username:[email protected]:10011/my_database 
+3

請注意,您需要mongo shell v3.2或更高版本才能正常工作。請參閱https://jira.mongodb.org/browse/SERVER-6233 – 2016-10-11 18:15:08