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’)  完成认证

显示更多