Windows下本机搭建MongoDB复制集

Windows下本机搭建MongoDB复制集

一、新建目录

打开windows的ctrl+r ,输入poweshell

输入以下命令,创建三个文件夹:

md d:\data\db1
md d:\data\db2
md d:\data\db3

实际环境上我们应该要搭建在三台不同的机器上(不然搭了白搭),但是现在我们要在一台机器上运行三个进程,因此我们为他们各自设置不同的配置。

其不同的配置分别为:

  • 不同的端口

    • 这里我们设置端口分别为:28017/28018/28019
  • 不同的数据目录

    • 数据目录为

    • d:\data\db1

      d:\data\db2
      d:\data\db3

  • 不同日志文件路径

    • 日志文件路径为:

      d:\data\db1\mongod.log

      d:\data\db2\mongod.log
      d:\data\db3\mongod.log

二、写配置文件

我们来写一个配置文件:

第一个配置文件如下: d:\data\db1\mongod.conf

systemLog:
  destination: file
  path: d:\data1\mongod.log  #日志文件路径
  logAppend: true
storage:
  dbPath: d:\data1\# 数据目录
net:
  bindIp: 0.0.0.0  # mongoDB会在所有的网卡的地址上监听
  port: 28017       # 端口
replication:
  replSetName: rs0  # 表示当前是复制集,不加的话就表示当前是单节点

第二个配置文件如下: d:\data\db2\mongod.conf

systemLog:
  destination: file
  path: d:\data2\mongod.log  #日志文件路径
  logAppend: true
storage:
  dbPath: d:\data2\ # 数据目录
net:
  bindIp: 0.0.0.0  # mongoDB会在所有的网卡的地址上监听
  port: 28018       # 端口
replication:
  replSetName: rs0  # 表示当前是复制集,不加的话就表示当前是单节点

第三个配置文件如下: d:\data\db3\mongod.conf

systemLog:
  destination: file
  path: d:\data3\mongod.log  #日志文件路径
  logAppend: true
storage:
  dbPath: d:\data3 # 数据目录
net:
  bindIp: 0.0.0.0  # mongoDB会在所有的网卡的地址上监听
  port: 28019       # 端口
replication:
  replSetName: rs0  # 表示当前是复制集,不加的话就表示当前是单节点

运行前请先在D盘建立三个文件夹,分别为data1 data2 data3

至此,配置文件完成。

三、运行

win+r,打开一个新的cmd,输入:

mongod -f d:data/db1/mongod.conf

输入完之后再新开两个cmd,分别输入

mongod -f d:\data\db2\mongod.conf
mongod -f d:\data\db3\mongod.conf

注意,在windows中必须新开cmd才可以进行操作。否则进程将直接结束。

现在我们已经新开了三个数据节点,但是他们此时是彼此独立的。

四、让他们连起来~!

现在我们要配置复制集,当前有两个方法。

首先保证我们的hostname可以被解析:
输入hostname查看当前主机名

方法1:

​ 在mongo里面设置。

​ 在命令行输入

​ mongo localhost:28017

​ 继续输入:

​ rs.initiate()

​ 这时我们的输入变成了:

这表示我们当前节点已经不再是一个单节点,而是一个复制集节点。SECONDARY表示这时一个从节点。

再按一下回车,

这表示当前我们的节点已经从Secondary节点变为一个PRIMARY节点。输入rs.status()可以查看属性,其中members属性表示我们当前的复制集有多少个节点。

现在只有一个,我们往里面添加新的节点。

​ 输入:

​ rs.add(Sitr2020:28018)

​ 可以添加第二个节点。

同样的,输入以下可以添加第三个节点:

​ rs.add(Sitr2020:28019)

再输入rs.status(),查看属性members,会发现已经多了两个节点。

现在我们可以验证一下。

五、验证

为了更方便地看到效果,我们新开一个powershell查看效果。

我们打开,输入:

​ mongo localhost:28018

​ 然后我们试一下往新开的powershell里面输入rs.salveOk()以便让我们可以在从节点读取数据。

​ 在主节点的test数据库输入插入数据:

​ db.test.insert({a:1})

插入后,我们再往从节点的powershell上查询test数据库:

​ db.test.find()

​ 可以发现,是可以查到新插入的数据的。

posted @ 2020-11-29 20:56  Sitr  阅读(221)  评论(0编辑  收藏  举报