3节点mongo db身份验证设置失败

时间:2019-03-06 09:16:14

标签: database mongodb authentication

我有3个设置如下的MongoDB副本节点

主节点 次要节点 仲裁者节点

所有三个副本集均启用。我正在尝试为这些节点设置身份验证,然后按照以下步骤进行配置。

第1步:创建一个root用户,并将其添加到角色:在主节点中具有密码的root用户

第2步:在主节点中使用以下命令创建密钥文件-openssl rand -base64 741> mongodb.key并将密钥文件复制到所有3个节点

第3步:将以下配置添加到所有三个节点。

安全性:    授权:已启用    keyFile:/ pathtokeyfile

第4步:在所有三个节点上重新启动sudo服务mongod

完成上述步骤后,我尝试在主节点中使用用户名和密码访问数据库,并且可以读取数据库和文件

当我在辅助节点和仲裁节点上尝试相同操作时,出现以下错误

rsss0:SECONDARY> show dbs
2019-03-06T09:10:40.884+0000 E QUERY    [thread1] Error: listDatabases failed:{
    "operationTime" : Timestamp(1551863438, 9),
    "ok" : 0,
    "errmsg" : "not master and slaveOk=false",
    "code" : 13435,
    "codeName" : "NotMasterNoSlaveOk",
    "$clusterTime" : {
        "clusterTime" : Timestamp(1551863438, 9),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:67:1
shellHelper.show@src/mongo/shell/utils.js:860:19
shellHelper@src/mongo/shell/utils.js:750:15
@(shellhelp2):1:1

请让我知道我要去哪里。

我的另一个问题是,当我们设置复制时,我可以从所有三个节点读取数据还是可以仅从主节点读取数据?

例如:show dbs仅在主节点上起作用,而在其他两个节点上不起作用,它抛出以上错误。

0 个答案:

没有答案