一.Windows搭建复制集
1. 创建数据库文件夹
在D盘建立三个文件夹,分别为db1,db2,db3。
2.创建MongoDB启动配置文件
在D盘建立三个文件,分别为 rs1 ,rs2,rs3。
rs1里面写入(本人27017已经被占用了):
dbpath=D:db1
port=26017
replSet=rs
rs2里面写入:
dbpath=D:db2
port=28017
replSet=rs
rs3里面写入:
dbpath=D:db3
port=29017
replSet=rs
(说一句题外话,fork在windows下面是没有用的)
3.运行独立节点
先找到mongod.exe的位置,本人电脑上的位置是 C:Program FilesMongoDBServer3.4inmongod.exe。
win+R打开三个控制台。分别运行(注意引号):
C:"Program Files“MongoDBServer3.4inmongod.exe --config D: s1 (备注:控制台1)
C:"Program Files“MongoDBServer3.4inmongod.exe --config D: s2 (备注:控制台2)
C:"Program Files“MongoDBServer3.4inmongod.exe --config D: s3 (备注:控制台3)
4.运行mongo shell
在mongod.exe同目录下找到mongo.exe,在本人这里就是 C:Program FilesMongoDBServer3.4inmongo.exe
随意选择一个端口号,本人这里选择26017.输入命令:
C:"Program Files“MongoDBServer3.4inmongo.exe localhost:26017。(备注:控制台4)这时候应该能链接上了哈。
在命令行输入rs.status(),应该能看到类似的画面:
可以看到,这里提醒我们需要先运行 rs.initiate()方法。这个方法是有入参的,但是这里为了演示方便,直接就用默认配置了。
输入 rs.initiate()。运行完这个命令之后,实际上一个复制集已经起来了,但是他只有一个节点,就是自己。
5.添加节点
我们使用 rs.add命令来添加节点。这里同样是为了简单起见,我们使用最少的配置,想看rs.add的完整配置,详见官方文档。
调用rs.initiate()方法的视乎,可以看到一个 ”me“:"DESKTOP-H19S5KF:26017"。这个有用,因为我们是在本机启动三个节点,因此host是一样的,host就是前面的
DESKTOP-H19S5KF,不是localhost,也不是127.0.0.1哈。大伙可以尝试一下,使用localhost或者127.0.0.1是会有报错的。
我们添加另外两个节点:
rs.add("DESKTOP-H19S5KF:28017")
rs.add("DESKTOP-H19S5KF:29017")
完事,我们已经成功添加了三个节点,可以使用rs.status()查看一下,一个有三个节点的复制集已经成功启动了。
6. 一些额外的东西
大家有没有发现,运行一个复制集,要开四个窗口,太麻烦!下面针对装有git bash的windows用户,贴上一段代码,可以在git bash上面一个窗口,直接启动你的复制集(没有初始化复制集的还要重新初始化哈,就是上面的 4 5 两个步骤)。
#!/bin/bash cd C:/"Program Files"/MongoDB/Server/3.4/bin ./mongod.exe --config D:/rs1 & ./mongod.exe --config D:/rs2 & ./mongod.exe --config D:/rs3 &
保存到任意文件,命名为 xxx.sh。可以在git bash 里面运行这个脚本,本人电脑上(win10)可以直接点击文件运行。