我正在尝试设置一个副本集,但是当我发出:
rs.initiate()
在第一台服务器上,我收到以下错误:
{ "errmsg" : "need to login", "ok" : 0 }
但这很奇怪,因为在我的配置中auth: true
它被注释掉了。
有任何想法吗?
答案1
您可能已auth: true
注释掉,但您是否从配置文件中开始--auth
或--keyFile
指定keyFile
?设置keyFile
隐式启用身份验证,所以这可能是您遇到的问题。
如果您想完全确定,请暂时关闭mongod
实例并手动启动它,仅明确指定基本信息(端口、副本集名称等)。这样至少您可以确定哪些功能已启用,哪些功能未启用。
对于正在运行的实例,您可以从实例的日志文件顶部获取解析的当前选项 - 它们作为启动消息的一部分打印出来。您也可以通过运行以下命令获取它们:getCmdLineOpts
(但请注意,这需要管理员权限,因此如果您在启用身份验证的情况下运行并且没有定义管理员用户,您可能会看到问题)。