我有一个 MongoDB 副本集,其中包含 3 个服务器(1 个主服务器、1 个辅助服务器、1 个仲裁器;这是由 Google Cloud 一键安装创建的默认副本集)。主服务器和辅助服务器的 2 个配置文件(mongod.conf)已更改,添加了 security.authorization: enabled
。
使用以下 MongoDB shell 命令添加根用户:
use admin
db.createUser({user:"root",pwd:"root",roles:["root"]})
使用“sudo service mongod restart”在主备服务器上重启MongoDB服务后,与副本集的连接变得不稳定。
rs.status() 有时会给出结果
- 1 个主节点、1 个不可达节点、1 个仲裁节点
- 1 个辅助,1 个辅助,1 个仲裁器
- 1 个辅助节点、1 个不可达节点、1 个仲裁节点
如何正确设置 MongoDB 副本集的基本密码验证(不使用 key 文件)?
最佳答案
我终于找到了答案。 MongoDB 副本集需要用户帐户和 key 文件。 key 文件似乎用于副本集中服务器之间的身份验证,而不是用于登录。
在linux上创建mongodb key 文件,复制到所有模式600
完整的db服务器:
cd
openssl rand -base64 741 > mongodb.key
chmod 600 mongodb.key
mongod.conf 文件:
replication:
replSetName: rs0
security:
authorization: enabled
keyFile: /home/USERNAME/mongodb.key
管理员用户:
(just like in question content)
关于具有简单密码认证的 MongoDB 副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38524150/