MongoDB 副本集配置

来源:互联网 发布:知乎 武林风 编辑:程序博客网 时间:2024/04/28 01:34

    本文介绍的是基于Windows 平台的MongoDB副本集的搭建,MongoDB版本为Version:3.2.7,所以请注意一些相关的指令。

1、准备三台服务器,用户搭建副本集:OADB01,OADB02,OADBO3,分别在这三台服务器上安装MongoDB。.

2、用如下指令,生成Keyfile 文件,文件名为

echo -e "my    secret    key" >D:\ mongokey
3、用记事本打卡该文件,并删除里面的特殊符号-,“”,不然后续启动这个文件的时候,会提示错误。

4、将生成的mongokey文件备考到每个服务器的相同路径,以便于后续使用。

5、分别在每台服务器上用如下指令启动MongoDB的服务,设置MongoDB端口,以及数据库地址,复制集名称。

mongod   --port 27017 --dbpath "D:\MongoDB\rsDB1" --replSet rs0 

6、进入shell,然后再执行如下指令进行副本集的初始化,初始化的时候因为各个服务器之间是没有通过用户名密码验证的,所以需要先关闭防火墙,以免不能正常通讯。

use admindb.runCommand({"replSetInitiate":{"_id":'rs0',"members":[{"_id":1,"host":"OADB01:27017"},{"_id":2,"host":"OADB02:27017"},{"_id":3,"host":"OADB03:27017"}]}})

7、当初始化副本集成功以后,我们逐个关闭副本集,最后再关闭主副本

use admindb.shutdownServer()
8、再次启动副本及,这次加入我们生成的Keyfile文件启动:

mongod --keyFile "D:\mongokey"  --port 27017 --dbpath "D:\MongoDB\rsDB1" --replSet rs0
9、查看副本集运行情况,并确认主副本所在服务器

rs.status()
10、在主副本集上打开shell,新增一个数据库管理员账号,注意这个集合的账户,当增加了一个账户以后,便不能采用匿名方式登录了,所以这个账户是后续给其他账户

授权的账户,需要一定的权限。

admin = db.getSiblingDB("admin")admin.createUser(  {    user: "admin",    pwd: "dmin12345",    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  })

11、另外打开一个shell,然后用用户名与密码方式登录群集:

mongo -u "admin" -p "admin12345" --authenticationDatabase "admin"
12、登陆以后,我们可以通过这个账户再去增加其他的账户,比如:

use admindb.createUser(  {    "user" : "OA",    "pwd" : "OA",    roles: [ { "role" : "readWriteAnyDatabase", "db" : "admin" } ]  })

这样,我们就可以通过新增的账户,连接数据集了,当然用户也可以新增其他的数据管理员账户,具体的授权可以参考官方手册。


参考文件:

https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/

https://docs.mongodb.com/manual/tutorial/deploy-replica-set-with-keyfile-access-control/




0 0
原创粉丝点击