0

我对副本集有疑问

将 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 行,它可以正常工作。

4

2 回答 2

4

我解决问题。

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

作为root用户,我做了:

$ chmod 700 keyfile
$ chown monogdb:mongodb keyfile
于 2013-10-01T14:43:29.057 回答
1

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

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

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

于 2013-10-01T11:35:15.090 回答