我服务端开发小白一枚,这几天为了在windows上搞这个,查了不少资料,踩了不少坑,发一篇文章记录下,帮需要的朋友避免这个踩坑过程。
参考文献链接
https://jingyan.baidu.com/article/67662997203cfd15d51b84f6.html
MongoDB安装配置教程(详细版)_mongodb安装教程-CSDN博客
https://www.cnblogs.com/liweikuan/p/15968060.html
https://www.cnblogs.com/dyd168/p/16558254.html
第一步先进行安装:
进入Download MongoDB Community Server | MongoDB,下载community server
下载完成后正常进行安装即可
之后再下载mongodb shell,commnunity包内时没有包含这玩意的
(建议将此压缩包解压到community server的安装目录,bin文件夹内的东西放一起)
第二步配置环境变量
1.右击桌面图标 “我的电脑” ,找到 环境变量 在 系统变量 里面找到 path,点击 编辑
2.添加MongoDB的bin地址(ps:注意自己电脑存放mongodb的文件夹路径)
第三步创建实例配置
首先在你想要存放数据的目录下创建一个db1文件夹
再在文件夹内创建2个文件mongo.config和mongo.log(两个文件命名并非固定,只要和mongo.config中的配置对的上即可)
Mongo.log文件中没有内容
Mongo.config中的配置如下:
#数据库数据存放目录
dbpath=G:\MongoDB\moshou\db1
#数据库日志存放目录
logpath=G:\MongoDB\moshou\db1\mongo.log
#以追加的方式记录日志
logappend = true
#端口号 默认为 27017
port=27017
#mongodb所绑定的ip地址,绑定后只能通过127访问
bind_ip = 127.0.0.1
#是否开启副本集模式
replSet=rs0
注:填配置时,注意空格符号;注意不要添加用户认证和keyFile等冗余配置!!
此时将db1文件夹复制3份,并把对应的mongo.config内的配置路径调整成对应的文件夹路径
第四步开启多个mongoDB实例
在moshou根目录下(这个是我自己的db1…等文件夹的根目录),按住Shift键,右键点击空白处,打开多个PowerShell,分别执行如下指令:
mongod -f db1\mongo.config --replSet rs0
mongod -f db2\mongo.config --replSet rs0
mongod -f db3\mongo.config --replSet rs0
执行后表现
此时便开启了3个mongodb实例了
验证实例是否开启,可以打开cmd,执行如下指令:
mongosh –port 27019 (注:连接的端口可以在3个端口中任选一个)
连接成功表现如下
注:不需要关注我图中涂黑的内容,这时候这里是没东西的
第五步初始化副本集
在刚刚验证打开mongosh窗口中输入如下指令
rs_conf={_id:"rs0",members:[{_id:0,host:"127.0.0.1:27017",priority:1},{_id:1,host:"127.0.0.1:27018",priority:2},{_id:2,host:"127.0.0.1:27019",priority:3}]}
按回车确认
之后再执行指令rs.initiate(rs_conf)
便可以将副本集初始化完成
此时输入rs.status()指令,便可以查看副本集中的成员及成员状态,如下:
注:初始化完成时,要注意成员的状态为Primary和Secondary这个两个的才是正常状态,如果出现其他状态,如:not health之类的就要排查问题了
第六步创建超级用户
注意到上图中的成员状态为Primary的,这个才是我们的主节点,所以我们需要通过新打开cmd命令提示符窗口,重新输入指令 mongosh –port 27019,进行主节点连接,连接完成如下
此时再次执行指令:use admin,将操作切换到admin数据库
这时候再输入指令:db.createUser( { user: "admin", pwd: "123456", roles: [ { role: "root", db: "admin" } ] } ),就可以创建出超级用户admin了
注:超级用户的创建需要切换到其他数据库才能创建成功,不能在test数据库中创建
第七步开启用户验证
将下列配置分别加入3个实例配置中
#开启用户认证
auth=true
#秘钥文件路径
keyFile=G:\MongoDB\moshou\db1\keyFile
此时的实例配置内容为:
同时你需要将keyFile文件分别放置在db1,db2,db3这个三个文件夹下(mongodb的keyFile文件怎么生成,大家就另行查找了哈)
此时关闭3个实例窗口,并再次开启
再通过mongosh –port 27019进行连接
当连接成功后,输入rs.status()指令时,提示需要用户验证,如下图:
那么就验证开启成功了
此时通过use admin,先切换数据库,再通过db.auth(“admin”,”123456”)进行验证后,再执行rs.status()指令,就可以查看信息了,如下图
之后你就可以开始愉快的玩耍了