MongoDB 具有简单密码验证的副本集
MongoDB replica set with simple password authentication
我有一个包含 3 个服务器的 MongoDB 副本集(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 副本集的基本密码验证(不使用密钥文件)?
我终于找到了答案。 MongoDB 副本集需要用户帐户和密钥文件。密钥文件似乎是用于副本集中服务器之间的身份验证,而不是用于登录。
在 linux 上创建 mongodb 密钥文件,复制到所有模式为 600
完整的数据库服务器:
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)
我有一个包含 3 个服务器的 MongoDB 副本集(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 副本集的基本密码验证(不使用密钥文件)?
我终于找到了答案。 MongoDB 副本集需要用户帐户和密钥文件。密钥文件似乎是用于副本集中服务器之间的身份验证,而不是用于登录。
在 linux 上创建 mongodb 密钥文件,复制到所有模式为 600
完整的数据库服务器:
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)