【问题标题】:how can I connect to a remote mongo server from Mac OS terminal如何从 Mac OS 终端连接到远程 mongo 服务器
【发布时间】:2015-01-04 23:49:19
【问题描述】:

我想在我的 MacBook 上进入终端中的 mongo shell。但是,我有兴趣连接到在云中运行的 Mongo 实例(通过 Heroku 插件的 compose.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 命令时我继续收到“未经授权”错误消息。

【问题讨论】:

    标签: mongodb mongo-shell


    【解决方案1】:

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

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

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

    连接后,您可以查看收藏吗?

    > show collections
    

    如果一切顺利,您只是没有数据库的管理员权限,无法运行show dbs

    【讨论】:

    • 我可以使用您描述的技术进行连接。但是,我无法运行任何命令,例如“显示集合”或“显示用户”。我渴望得到“未授权查询 my_db.system.namespaces”错误。
    • 好的,所以 heroku 将我的 mongo 数据库随机命名为与我在 dev 中使用的名称不同的名称。我认为这基本上是我的问题。
    • 但是如果我最后有 ?authSource=admin 。它不起作用。 --authenticationDatabase 没有帮助。
    • 27017 是默认端口。以防万一示例端口不起作用。 docs.mongodb.com/manual/reference/default-mongodb-port
    【解决方案2】:

    使用 Mongo 3.2 and higher 只需按原样使用您的连接字符串:

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

    【讨论】:

      【解决方案3】:

      另一种方法是:

      mongo mongodb://mongoDbIPorDomain:port
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-05
        • 1970-01-01
        • 1970-01-01
        • 2016-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多