使用简单密码验证设置MongoDB副本

我有一个由3台服务器组成的MongoDB副本集(1个主服务器,1个辅助服务器,1个仲裁器;这是由Google Cloud一键安装创建的默认副本集)。 主服务器和辅助服务器的2个配置文件(mongod.conf)已经添加了“security.authorization:enabled”。

Root用户添加了以下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密钥文件:

    cd
    openssl rand -base64 741 > mongodb.key
    chmod 600 mongodb.key
    

    mongod.conf文件:

    replication:
      replSetName: rs0
    
    security:
      authorization: enabled
      keyFile: /home/mongodb.key
    

    管理员用户:

    (just like in question content)
    
    链接地址: http://www.djcxy.com/p/61653.html

    上一篇: MongoDB replica set with simple password authentication

    下一篇: In mongodb 3.0 replication, how elections happen when a secondary goes down