Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB激活身份验证将副本设置为其他副本_Mongodb_Replicaset - Fatal编程技术网

MongoDB激活身份验证将副本设置为其他副本

MongoDB激活身份验证将副本设置为其他副本,mongodb,replicaset,Mongodb,Replicaset,从今年年初开始,我就在一起使用MongoDB和SolR。尽管这个问题是关于我最近几天与MongoDB会面后遇到的一个特定问题,但我找不到解决方法 其设置如下:2个副本集群集。(我不知道这是否不言自明,但我会让专家们判断是否有更好的方式来表达,哈哈) 请看,出于一些明显的最佳实践原因,我决定在我的MongoDB实例上启用身份验证。我按照MongoDB文档中描述的步骤来创建一个具有特定权限的用户 rs0:PRIMARY> db.createUser({ user: "louis", pwd:

从今年年初开始,我就在一起使用MongoDB和SolR。尽管这个问题是关于我最近几天与MongoDB会面后遇到的一个特定问题,但我找不到解决方法

其设置如下:2个副本集群集。(我不知道这是否不言自明,但我会让专家们判断是否有更好的方式来表达,哈哈)

请看,出于一些明显的最佳实践原因,我决定在我的MongoDB实例上启用身份验证。我按照MongoDB文档中描述的步骤来创建一个具有特定权限的用户

rs0:PRIMARY> db.createUser({ user: "louis", pwd: "WhatIsGod", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
Successfully added user: {
    "user" : "louis",
    "roles" : [
        "userAdminAnyDatabase",
        "dbAdminAnyDatabase",
        "readWriteAnyDatabase"
    ]
}
到目前为止,你可能不会告诉我出了什么问题。我也这么想! 成功创建用户后,我停止了MongoDB服务,以修改
mongo.conf
文件,并将
禁用的
替换为
启用的
,然后重新启动服务

服务重新启动后,我看到我的副本集处于
其他
状态,在Mongo Shell中,如果没有弹出一个错误,没有一个命令,我几乎无法执行任何操作(下面的几个示例)

这基本上保持不变,直到我恢复
mongo.conf
文件中的更改

所以在搜索之后,我想问一下以前有没有人遇到过这种情况


如果没有,我能得到任何关于我可以检查这个问题的建议吗

我真的知道发生了什么事

由于使用副本集,身份验证需要副本的一个文件来确认用户及其权限(据我所知)

您可以在此处找到详细信息:

(抄送@datdinhquoc,获取我3年前刚刚找到的答案)

2019-10-07T16:34:16.312+0200 E QUERY    [thread1] Error: not master and slaveOk=false :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
2019-10-07T16:22:15.583+0200 E QUERY    [thread1] Error: Could not retrieve replica set config: {
    "ok" : 0,
    "errmsg" : "not authorized on admin to execute command { replSetGetConfig: 1.0 }",
    "code" : 13,
    "codeName" : "Unauthorized"