我有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仅在主节点上起作用,而在其他两个节点上不起作用,它抛出以上错误。