【问题标题】:mongodb replicaset auth not workingmongodb副本集身份验证不起作用
【发布时间】:2013-09-30 18:46:40
【问题描述】:

我的副本集有问题

在我将 keyFile 路径添加到 mongodb.conf 后,我可以连接,这是我的 mongo.conf:

logpath=/path/to/log

logappend=true

replSet = rsname

fork = true

keyFile = /path/to/key

这就是命令行中显示的内容:

XXXX@XXXX:/etc$ sudo service mongodb restart
stop: Unknown instance:
mongodb start/running, process 10540
XXXX@XXXX:/etc$ mongo
MongoDB shell version: 2.4.6
connecting to: test
Mon Sep 30 18:44:20.984 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed
XXXX@XXXX:/etc$

如果我在 mongo.conf 中注释 keyFile 行,它可以正常工作。

【问题讨论】:

    标签: mongodb database-replication replicaset


    【解决方案1】:

    我解决了这个问题。

    它与密钥文件权限有关,我修复了权限和所有权并像魅力一样工作:

    作为 root 用户我做了:

    $ chmod 700 keyfile
    $ chown monogdb:mongodb keyfile
    

    【讨论】:

    • 请问您为什么不接受我的回答并评论说错误的权限是我提到的问题?
    • 我在你回答之前找到了这个......但如果你想要重点,你有,谢谢。
    【解决方案2】:

    如果身份验证是问题,您应该收到不同的消息(并且应该能够在没有经过身份验证的会话的情况下启动 shell,只是阻止您运行大多数命令)。

    这意味着更像是一个套接字异常,您可能连接的地方没有服务侦听。您可以使用 netstat 检查进程是否正在侦听消息中的 ip:port。我假设 mongod 进程尚未启动,这可能是由于多种原因检查当前日志的原因。一件事可能是指定路径中不存在密钥文件,或者没有设置适当的权限。

    添加密钥文件也会自动打开 auth 选项。这意味着您必须使用用户进行身份验证,但您可以通过 localhost 异常绕过此身份验证:.阅读documentation。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2014-09-06
      相关资源
      最近更新 更多