windows下MongoDB搭建集群

部署集群思路:
在同一个服务器上安装三个实例,分别用端口号:27017(主)、27018(从)、27019(裁决)

1.安装mongodb

我的版本是3.2.10

2.新建目录

D:\MongoDB\instance\data1\db
D:\MongoDB\instance\data1\log
D:\MongoDB\instance\data2\db
D:\MongoDB\instance\data2\log
D:\MongoDB\instance\data3\db
D:\MongoDB\instance\data3\log

3新建配置文件

在D:\MongoDB\instance下新建mongod1.config、mongod2.config、mongod3.config

mongod1.config 配置

# 设置数据文件的存放目录
dbpath = D:\MongoDB\instance\data1\db
# 设置数据文件的存放目录
logpath = D:\MongoDB\instance\data1\log\mongod.log
# 设置端口号
port = 27017
# 绑定IP,使其可以外网访问
bind_ip = 0.0.0.0
# keyFile
# keyFile = d:\mongodb\keyFile.file
# 权限启用验证
#auth = true
# 集群名称
replSet = rs0

mongod2.config 配置

# 设置数据文件的存放目录
dbpath = D:\MongoDB\instance\data2\db
# 设置数据文件的存放目录
logpath = D:\MongoDB\instance\data2\log\mongod.log
# 设置端口号
port = 27018
# 绑定IP,使其可以外网访问
bind_ip = 0.0.0.0
# keyFile
# keyFile = d:\mongodb\keyFile.file
# 权限启用验证
#auth = true
# 集群名称
replSet = rs0

mongod3.config 配置

# 设置数据文件的存放目录
dbpath = D:\MongoDB\instance\data3\db
# 设置数据文件的存放目录
logpath = D:\MongoDB\instance\data3\log\mongod.log
# 设置端口号
port = 27019
# 绑定IP,使其可以外网访问
bind_ip = 0.0.0.0
# keyFile
# keyFile = d:\mongodb\keyFile.file
# 权限启用验证
#auth = true
# 集群名称
replSet = rs0

4.部署mongodb实例

切换到mongodb安装bin目录,执行命令
– 安装服务

mongod --config D:\MongoDB\instance\mongod1.config --serviceName "Mongodb1" --serviceDisplayName "Mongodb1" --install

– 启动服务

net start Mongodb1

在这里插入图片描述

依次部署和启动 第二、第三个实例

mongod --config D:\MongoDB\instance\mongod2.config --serviceName "Mongodb2" --serviceDisplayName "Mongodb2" --install
mongod --config D:\MongoDB\instance\mongod3.config --serviceName "Mongodb3" --serviceDisplayName "Mongodb3" --install
net start Mongodb2
net start Mongodb3

5.配置集群

连接上任一一台实例

mongo --host 127.0.0.1 --port 27017
use admin

//初始化集群

rs.initiate({_id:"rs0",members:[{_id:0,host:"127.0.0.1:27017"},{_id:1,host:"127.0.0.1:27018"}]});

//添加裁决

rs.addArb("127.0.0.1:27019")  

至此,集群配置成功。

可以查看下集群的状态

rs.status()

集群搭建成功示例图

6.其他命令(用不到可以不看)

#停止服务
net stop Mongodb1

#卸载服务
sc delete Mongdb1

#创建管理员
建哪个库的管理员就先 use到那个库,例如建系统最高管理员

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

角色有:
1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore;
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root

MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限

#密码认证
在哪个库建的管理员,就use到哪个库去认证,例如

use admin
db.auth("root","123456");

#追加角色配置

db.grantRolesToUser("root",[{ role: "backup", db: "admin" },{ role: "restore", db: "admin" }])

#备份
备份指定库,–authenticationDatabase admin一定要加,使用的username属于哪个库就–authenticationDatabase db

mongodump -h 127.0.0.1:27021 -u test -p 123456 -d dbtest  -o D:\mongodb\bak2 --authenticationDatabase admin

#还原

mongorestore --host 127.0.0.1:27021 --db DataCenter D:\mongodb\bak\test

以上脚本都有其他写法,可以尝试,具体可以看通过 【命令 + --help】查看。

7.遗留问题

尝试用auth方式启动,linux下集群间可以通过keyFile进行验证,
但是window下不知道该怎么配置,如有大神指点,感激不尽。

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值