Windows10下MongoDB集群搭建

准备环境
安装包地址:

1.准备3台可以互相ping同的虚拟机

2.win10系统

mongoDB官网地址: https://www.mongodb.com/

最新下载地址: https://www.mongodb.com/download-center/community

1.1安装数据库
1.1.1双击windows installer工具包
在这里插入图片描述
选择complete
在这里插入图片描述
默认安装在C:\Program Files\MongoDB\Server\4.2
在这里插入图片描述
在这里插入图片描述

一直点击next到安装完成

1.1.2 初始化数据库(每台虚拟机一样)
1.删除自动生成的data 和 log 下的 所有文件,只留个空文件夹

2.bin同级目录下创建文件mongo.cfg,请注意打开文件扩展名
在这里插入图片描述

内容如下:

#database path
dbpath=C:\Program Files\MongoDB\Server\4.2\data
#log path
logpath=C:\Program Files\MongoDB\Server\4.2\log\mongo.log
#error log append
logappend=true

replSet=rs0

#enable logfile
journal=true
#filter some useless info,if need debug,please set false

quiet=true

#bind ip
bind_ip=0.0.0.0

#port default 27017
port=17017

1.1.3 bin目下启动windows mongoDB服务,依次执行
1.sc delete MongoDB(若下载的是解压包,可跳过此步骤)

2.mongod --config “C:\Program Files\MongoDB\Server\4.2\mongo.cfg” --install --serviceName “mongoDB”

3.net start mongodb
注意:如果出现在这里插入图片描述
或者配置文件执行命令不生效的
在这里插入图片描述
可以先删除mongoDB服务,然后重新执行以上命令,如下所示,代表启动成功, net stop mongoDB代表停止服务
在这里插入图片描述
如果出现net start mongoDB 后 服务名无效的,请以管理员方式运行CMD

成功后可通过http请求,出现可出现如下页面:

http://127.0.0.1:17017/
在这里插入图片描述
注意:外部访问虚拟机服务需要将ip置:0.0.0.0 并且关闭防火墙

2.1 集群搭建
2.1.1进入172.21.15.15虚拟机下
在mongoDB的bin目录下执行命令mongo --host 127.0.0.1:17017 进入mongoDB的命令行模式

执行命令(注意:此处_id:"rs0"要和配置文件中replSet=rs0中名称相同)

config={_id:“rs0”, members:[{_id:0, host:“172.21.15.15:17017”,priority:2},{_id:1, host:“172.21.15.17:17017”,priority:1},{_id:2,host:“172.21.15.18:17017”,arbiterOnly:true}]}
在这里插入图片描述
2.1.2 初始化副本集群
rs.initiate(config)
在这里插入图片描述
2.1.3查看复制集状态
rs.status()
在这里插入图片描述
在这里插入图片描述
至此,mongoDB集群已经搭建完毕

注意:

rs.initiate(config)出现报错
在这里插入图片描述
是由于配置文件中缺少replSet=rs0导致,现在已经加上
2.2 开启身份验证
2.2.1 副本集搭建成功后,给副本集创建账户,密码
在主节点创建用户权限为userAdminAnyDatabase,务必保证每个节点都正常运行,因为创建身份需要及时通道到所有节点,若有节点异常,会一直等待同步

db.createUser({user:“admin”,pwd:“q123456.”,roles:[{role:“userAdminAnyDatabase”,db:“admin”}]})

创建后用验证角色 :db.auth(‘admin’,‘q123456.’)
在这里插入图片描述
可以用db.getUsers()查看所有的角色
在这里插入图片描述
2.2.1 关闭副本集:停掉mongoDB集群所有的节点
1.net stop mongoDB 或者 在连接节点状态下在admin 数据库下db.shutdownServer()

2.修改每个节点的配置文件mongo.conf

#database path
dbpath=C:\Program Files\MongoDB\Server\4.2\data
#log path
logpath=C:\Program Files\MongoDB\Server\4.2\log\mongo.log

#是否以安全认证方式进行
auth=true

#keyFile鉴权文件:改为实际路径
keyFile=C:\Program Files\MongoDB\Server\4.2\key\keyfile.keyfile
#error log append
logappend=true
replSet=rs0
#enable logfile
journal=true
#filter some useless info,if need debug,please set false
quiet=true
#bind ip
bind_ip=0.0.0.0
#port default 27017
port=17017

3.keyfile.keyfile中的内容是base64编码,字符要大于666,copy到每个mongoDB下,用于节点之前的相互通讯

可以网站直接翻译获得 https://base64.us/

4.重新启动所有的节点

5.db.auth(‘admin’,‘q123456.’) 验证登陆,创建其他数据库用户

6.在所用数据库在创建用户

use testdb

创建用户

db.createUser({user:“dbOwnerTestdb”,pwd:“q123456.”,roles:[{role:“dbOwner”,db:“testdb”}]})

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值