我遇到了副本集的问题
我将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行,它可以正常工作。
答案 0 :(得分:4)
我解决了这个问题。
它与密钥文件权限相关,我修改了权限和所有权,并像魅力一样工作:
作为root用户,我做了:
$ chmod 700 keyfile
$ chown monogdb:mongodb keyfile
答案 1 :(得分:1)
如果身份验证是问题,您应该获得不同的消息(并且应该能够在没有经过身份验证的会话的情况下启动shell,只是阻止您运行大多数命令)。
这个更像是一个套接字异常,你可能连接的地方没有服务监听。如果进程正在侦听消息中的ip:port,则可以使用netstat进行检查。我假设mongod进程尚未启动,这可能有几个原因检查当前日志。有一点可能是密钥文件在指定的路径上不存在,或者没有设置相应的权限。
添加密钥文件也会自动打开auth选项。这意味着您必须使用用户进行身份验证,但您可以使用localhost异常绕过此身份验证:。阅读documentation。