windows下MongoDB4.0的副本集搭建

复制三个MongoDB Server,一个为主节点Primary ,一个为辅节点Secondary,另一个为仲裁节点Arbiter

以无认证方式启动三个Server节点

server1> mongod --noauth --config mongod.cfg   
server2> mongod --noauth --config mongod.cfg   
server3> mongod --noauth --config mongod.cfg   

//server1   mongod.cfg
net:
  port: 27017
  bindIp: 0.0.0.0
replication:
  oplogSizeMB: 200
  replSetName: replset

//server2   mongod.cfg
net:
  port: 27018
  bindIp: 0.0.0.0
replication:
  oplogSizeMB: 200
  replSetName: replset

//server3   mongod.cfg
net:
  port: 27019
  bindIp: 0.0.0.0
replication:
  oplogSizeMB: 200
  replSetName: replset

连接server1

> mongo
> rs.initiate();   //初始化副本集设置
> rs.add('mg.imily.net:27018');    //添加server2
> rs.addArb('mg.imily.net:27019');    //添加server3
> cfg = rs.conf();
> cfg.members[0].priority = 100;   //设置server1优先级
> cfg.members[1].priority = 50;    //设置server2优先级
> rs.reconfig(cfg);   //重新配置副本集信息

按照上一篇方式创建帐号密码后,接着需要创建节点之间的认证keyfile,用来在各节点之间的认证。

> openssl.exe rand 128 -base64 -out ./keyfile
//附下载: openssl.zip

//创建后复制到server1,server2,server3的bin目录中,并在三个mongod.cfg中添加
security:
  authorization: enabled
  keyFile: keyfile

最后添加server1,server2,server3作为系统服务,启动即可

显示更多

windows下的MongoDB安装与安全认证设置

MongoDB安装完后有两种启动方式,我们要以服务方式启动,并设置访问权限

安装完后进入安装目录,新建配置文件 config.cfg

systemLog:
    destination: file
    path: E:\MongoDB\mongod.log
storage:
    dbPath: E:\MongoDB\data 
net:
    bindIp: 0.0.0.0
    port: 27017

然后启动一个命令行启动mongod服务:

cd C:\Program Files\MongoDB\Server\3.6\bin
mongod --config="C:\Program Files\MongoDB\Server\3.6\bin\config.cfg"

再另启一个命令行进入mongodb设置用户密码

mongo.exe
use admin
db.createUser({user:'admin',pwd:'password',roles:[{role:'root',db:'admin'}]})

# 设置其他数据库
use admin
db.auth('admin','password');
db.createUser({user:'admin',pwd:'password',roles:[{role:'dbAdmin',db:'xxx'},{role:'readWrite',db:'数据库名称'}]});

#角色包括:

1. 数据库用户角色:read、readWrite;  

2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;       

3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

4. 备份恢复角色:backup、restore;

5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

6. 超级用户角色:root

关闭两个命令行,再启动一个命令行添加windows服务

sc create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe\" --service --auth --config=\"C:\Program Files\MongoDB\Server\3.6\bin\config.cfg\"" DisplayName= "MongoDB Server" start= "auto"
# 划线部分替换为安装目录

# 启动服务
sc start MongoDB

再次访问时需要输入:db.auth(‘admin’,’password’)  完成认证

显示更多