【问题标题】:MongoDB and Robomongo: Can't connect (authentication)MongoDB 和 Robomongo:无法连接(身份验证)
【发布时间】:2015-06-02 05:12:44
【问题描述】:

我有以下用户:

{
    "_id" : "admin.root",
    "user" : "root",
    "db" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}

对于我的数据库:

{
    "_id" : "mydb.mydbDbOwner",
    "user" : "mydbDbOwner",
    "db" : "mydb",
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "mydb"
        }
    ]
}

我无法通过本地主机上的 Robomongo 进行连接:

同样的道理……

Database: mydb
User Name: root

Database: mydb
User Name: mydbDbOwner

我该如何解决这个问题?

【问题讨论】:

  • 您是否在配置文件中启用了身份验证?如果不是,它将只允许本地主机访问您的数据库。
  • @Tdorno 确实! etc/mangodb.confauth=true
  • 您使用的是什么版本的 MongoDB 和 Robomongo?如果您使用的是 MongoDB 3.0,Robomongo 0.8.x 不支持新的 SCRAM-SHA-1 默认身份验证。请参阅 Robomongo 的 GitHub 问题跟踪器中的 issue #766
  • @Stennie 你是对的!发表一个答案,我会接受:)
  • @KarlMorrison 您使用的是 mmap(默认)还是 WiredTiger 存储引擎?如果您使用 mmap,则可能存在身份验证解决方法。

标签: mongodb


【解决方案1】:

Robomongo 0.8.x 不支持新的 SCRAM-SHA-1 身份验证,这是 MongoDB 3.0 中添加的默认身份验证方法。

Robomongo 0.9.0 RC4(2016 年 2 月)添加了对 SCRAM-SHA-1 的支持,但如果您使用的是现代版本的 MongoDB 服务器,则应升级到当前可用的最新版本的 Robomongo(现为 Robo3T)。

还有一个官方维护的免费 G​​UI,MongoDB Compass,它比 Robo3T 更新更积极。 MongoDB Compass 1.22+(2020 年 9 月)包括一个 embedded MongoDB shell

【讨论】:

  • 最新版 Robomongo 0.9.0 RC4 支持 scram-sha-1 身份验证,你能更新你的答案吗?
  • @AndrewOrsich 答案仍然正确(0.8.x 不支持 SCRAM-SHA-1,但这将是 0.9.0 版本的一部分)。我会等待最终的 Robomongo 0.9.0 版本来了解包含哪些功能并链接到实际的发布公告。
  • 进展如何? The answer can be edited没有“编辑:”,“更新:”或类似的 - 答案应该看起来好像是今天写的) - 例如“... Robomongo 0.9.0 版(2016-XX-XX 发布)增加了对 SCRAM-SHA-1 身份验证的支持。”
【解决方案2】:

你可以试试Mongo-Express(一个基于网络的工具)。

但是,您需要根据Upgrade to SCRAM将MongoDB-Node.js库升级到至少(1.4.29)。

我试过了,它适用于我的情况。您可以找到以下有用的命令:

npm install mongo-express cd node-modules/mongo-express

config.default.js 文件更改为 config.js 并更新它以包含您的数据库连接(例如,用户名、密码、连接的 URL 等)

编辑 package.jon 文件并将 MongoDB 的版本更改为“~1.4.29”

运行:npm 更新

要启动 Web 应用程序:执行命令“node app”,该网站将在 http://localhost:8081/ 可用。

【讨论】:

    【解决方案3】:

    您可以将本地主机更改为 127.0.0.1

    【讨论】:

      【解决方案4】:

      RC8 版本可以通过 SSH 隧道与 Robomongo 进行连接。请参阅 GitHub 问题 Where is the SSH tunnel settings on v 0.9.0 RC2 Mac version #1008

      【讨论】:

      • 不要将链接发布为答案,而是添加一些文本来解释此答案如何帮助 OP 解决当前问题。谢谢
      【解决方案5】:

      我在 Mac 上遇到了完全相同的问题。我删除了 Robomongo 客户端并从他们的网站下载了最新版本。它只是工作:)

      【讨论】:

        【解决方案6】:

        我刚刚升级到 Robomongo 的新版本 1.0。正如这里的一些人所说,0.8.x 不支持 SCRAM-SHA-1,这是 MongoDB 3.0 中的默认设置。在之前的版本中,它是 MONGODB-CR。

        但是从现在开始下载 Robomongo 的任何人都不应该遇到身份验证问题。

        https://robomongo.org/

        此底部链接更多地解释了 SCRAM-SHA。如果大量使用 MongoDB,我建议阅读它。

        SCRAM

        【讨论】:

          猜你喜欢
          • 2015-05-22
          • 1970-01-01
          • 2016-09-24
          • 2018-01-25
          • 1970-01-01
          • 2016-03-20
          • 2016-08-09
          • 2020-02-11
          • 2022-08-23
          相关资源
          最近更新 更多