如何从Mac OS终端连接到远程mongo服务器


101

我想放入MacBook终端中的mongo外壳。但是,我有兴趣连接到在云中运行的Mongo实例(通过Heroku插件的comppose.io实例)。我有MongoDB URI中的名称,密码,主机,端口和数据库名称:

mongodb://username:password@somewhere.mongolayer.com:10011/my_database

我已经使用Homebrew在MacBook上安装了mongodb,不是因为我希望Mongo在Mac上运行,而是为了访问mongo shell程序以连接到此远程数据库。

但是,我找不到正确的命令来获得我想要的完整Shell访问权限。使用此处找到的说明http://docs.mongodb.org/manual/reference/program/mongo/(搜索“远程”),我能够获得看起来像连接的内容,但没有提供用户名或密码,我就不会完全连接。运行db.auth(username, password)返回1(当我提供不正确的用户名和密码时,与“身份验证失败”相对),但是在发出show dbs命令时,我继续收到“未授权”错误消息。

Answers:


170

您可能连接正常,但没有足够的权限运行show dbs

如果在命令行中传递auth,则无需运行db.auth:

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

连接后,您是否可以看到收藏集?

> show collections

如果一切正常,那么您就没有对该数据库的管理员权限,并且无法运行 show dbs


我能够使用您描述的技术进行连接。但是,我无法运行任何命令,例如“ show collections”或“ show users”。我渴望得到“未经授权的my_db.system.namespaces查询”错误。
jononomo 2014年

1
好的,所以heroku随机将我的mongo数据库命名为与我在dev中使用的数据库不同的名称。我认为那基本上是我的问题。
jononomo 2014年

1
但是如果我最后有?authSource = admin。没用 --authenticationDatabase没有帮助。
罗曼·卡扎诺夫斯基

虽然27017是默认端口。以防万一示例端口无法正常工作。docs.mongodb.com/manual/reference/default-mongodb-port
更改了


0

另一种方法是:

mongo mongodb://mongoDbIPorDomain:port
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.