今天有时间搞了一下mongoDB的副本集,遇到好多坑,写下此文,方便日后查阅!

本教程是在windows环境下安装测试的(我是本机一台 + 两台虚拟机)

本机:10.53.8.159

虚拟机一:10.53.8.110

虚拟机二:10.53.8.112

MongoDB版本如下:

mongodb6 副本集群 mongodb内网搭建副本集_操作系统

一些基本设置我就不说了,比如三台都可以相互ping通,关闭了防火墙等等。

写入操作只能在主节点进行,从节点不能写入。

1.从官网下载安装包

https://www.mongodb.com/download-center/community

 

2.跟随教程安装

安装教程网上很多   https://www.runoob.com/mongodb/mongodb-window-install.html

注意:安装好后,不要再跟着它  “创建目录” ,因为data,log目录已经创建好了。

安装好后,我的目录如下

mongodb6 副本集群 mongodb内网搭建副本集_运维_02

 

 

 路径:E:\MongoDB\Server\4.0

3.在其余两台虚拟机上也各自安装一遍mongoDB。

我的安装路径和本机保持一致,E:\MongoDB\Server\4.0

4.编辑本机中 E:\MongoDB\Server\4.0\bin\mongod.cfg 配置文件

配置文件采用yml格式,所以需要注意别把格式搞错,否则会出现错误码1053

修改两个点:

1.bindIp:127.0.0.1  =======>bindIp: 0.0.0.0   这个是控制可以从哪些ip登陆mongoDB,0.0.0.0的话是可以从任意ip

2.将replication前的#号放开,修改成如下配置

replication:
 oplogSizeMB: 128
 replSetName: mySet
 enableMajorityReadConcern: true

5.同步骤4,编辑虚拟机一,二 中 E:\MongoDB\Server\4.0\bin\mongod.cfg 配置文件

6.制作启动bat文件

在本机  E:\MongoDB\Server\4.0\bin下,新建 mongo_start.bat(创建txt文件,然后将后缀txt改成bat即可)里面内容如下

mongod.exe --config "E:\MongoDB\Server\4.0\bin\mongod.cfg"

mongodb6 副本集群 mongodb内网搭建副本集_mongodb6 副本集群_03

 

 

 

mongodb6 副本集群 mongodb内网搭建副本集_运维_04

 

 

 7.同步骤6,虚拟机一,二 中也制作bat文件

8.双击本机,虚拟机一,二中的bat启动mongoDB副本集。

9.在本机上,进入E:\MongoDB\Server\4.0\bin目录,用cmd命令行连接mongoDB。

mongodb6 副本集群 mongodb内网搭建副本集_mongodb6 副本集群_05

 

 

 mongo --port 27017

10.定义副本集配置成员

注意:_id必须和mongod.cfg配置文件的replSetName完全相同。

rsconf = {
 _id: "mySet",
 members: [
 {
 _id: 0,
 host: "10.53.8.159:27017"
 },
 {
 _id: 1,
 host: "10.53.8.110:27017"
 },
 {
 _id: 2,
 host: "10.53.8.112:27017"
 }
 ]
 }

mongodb6 副本集群 mongodb内网搭建副本集_Server_06

 

11.执行初始化命令

rs.initiate(rsconf)

 rsconf和步骤10定义的名称一致。

mongodb6 副本集群 mongodb内网搭建副本集_数据库_07

 

 OK是1 ,表示创建成功。

12.查看配置后的信息

rs.conf()

mongodb6 副本集群 mongodb内网搭建副本集_mongodb6 副本集群_08

 

 12.使用可视化工具也可以看到相关信息

mongodb6 副本集群 mongodb内网搭建副本集_数据库_09

 

 13.连接10.53.8.159 insert一条数据

db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: '菜鸟教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
14.在10.53.8.110,10.53.8.112上都可以确认到数据,至此副本集配置和测试成功。

 




 切记:

1.副本集启动前,确保data目录为空

2.确保路径不出错

3.确保三台机子相互间能ping通。(有时网络不好,也会失败)