mongodb副本集和用户名用户名密码配置

网上有很多说副本集用户名密码配置的,但是很多都不靠谱,本人实测采坑总结如下:


######配置副本集####

1.首先需要配置副本集

副本集最少三台集群,每台机器添加相同的配置文件mongod.conf内容如下:

dbpath=/usr/local/mongodb/rs/data  #数据存放目录 

logpath=/usr/local/mongodb/rs/logs/mongod.log  #日志文件目录 

pidfilepath=/usr/local/mongodb/rs/mongod.pid  #pid端口文件 


port=27017  #mongodb端口 


logappend=true  #追加方式写日志文件 

fork=true        #后台运行 

journal=true    #启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里 

oplogSize=500  #同步操作记录文件大小(MB) 

smallfiles=true  #使用较小的默认文件 

#auth=true

#keyFile = /usr/local/mongodb/rs/config/access.key


replSet=socialset    #副本集名称,同一个副本集,名称必须一致

2.登录其中一台机器使用命令./bin/mongo启动命令工具

然后配置副本集config,config配置如下:

config={_id : 'socialset',members : [{_id : 1, host : '172.19.72.63:27017'},{_id : 2, host : '172.21.4.94:27017'},{_id : 3, host : '172.21.4.99:27017'}]}

回车

然后执行rs.initiate(config)

到此副本集配置完成

####副本集设置用户名密码###

1.集群中每个集群都创建相同的权限协同文件keyfile

进入目录/usr/local/mongodb/rs/config/

openssl rand -base64 1024 > access.key

chmod 600 access.key

集群所有集群需要使用同一个文件(可使用远程主机拷贝或是上传)

2.mongod.conf文件添加如下配置

auth=true

keyFile = /usr/local/mongodb/rs/config/access.key

3.创建整个数据库的超级管理员

3.X版本以后没有admin库,需要先创建admin库(此处相当于多创建一个库,可以直接在local库上创建),可通过Robo 3T创建。

db.createUser(

{

user:"root",

pwd:"903F826D413F3B4D",

roles:[{role:"readWriteAnyDatabase",db:"admin"},{role:"dbAdminAnyDatabase",db:"admin"},{role:"userAdminAnyDatabase",db:"admin"}]

}

)

4.如果需要管理集群的用户需要创建针对集群的管理用户,创建语句如下(可以最开始创建或是后续通过步骤3中创建的用户创建):

db.createUser(

{

user:"suroot",

pwd:"903F826D413F3B4D",

roles:[{role:"clusterAdmin",db:"admin"},{role:"clusterManager",db:"admin"},{role:"clusterMonitor",db:"admin"}]

}

)

5.创建针对ehomesocialdb的可读写、可管理用户、可管理数据库的用户

db.createUser(

{

user:"ehomesocial",

pwd:"903F826D413F3B4D",

roles:[{role:"readWrite",db:"ehomesocialdb"},{role:"dbAdmin",db:"ehomesocialdb"},{role:"userAdmin",db:"ehomesocialdb"}]

}

)

(自己可查看具体权限配置)

>use admin

switched to db admin

testrepl:PRIMARY> db.system.users.find()    查看所有用户

注意:需要先创建用户名密码然后配置文件开启权限认证模式,重启主机,同时mongodb的用户名密码创建必须指定库,也就是需要在某个库上创建相关权限的用户。

//先关闭从节点在关闭主节点,然后重启主节点再重启从节点

推荐阅读更多精彩内容

  • 和好朋友卷相约28号一起去都江堰住,度过了自由潇洒的5天,我们又来了一场说走就走的旅行。 出发前一天,卷对我说...
    風杏沒0201阅读 159评论 0 2
  • 我是一个爱笑的人,可能也是一个不爱笑的人。但其实,我自己也不知道我是不是爱笑。 说实话,好好想一想,自己有好久没有...
    REBEC_123阅读 617评论 0 0
  • 各种疲惫,各种情绪的萌发,终于归于平静,一天经历了很多心惊胆颤,各种应付,感恩孩子退热了,现在虽还在医院,有家人在...
    Hi_张阅读 37评论 0 0