zoukankan      html  css  js  c++  java
  • Windows下本机搭建MongoDB复制集

    Windows下本机搭建MongoDB复制集

    一、新建目录

    打开windows的ctrl+r ,输入poweshell

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

    md d:datadb1
    md d:datadb2
    md d:datadb3
    

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

    其不同的配置分别为:

    • 不同的端口

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

      • 数据目录为

      • d:datadb1

        d:datadb2
        d:datadb3

    • 不同日志文件路径

      • 日志文件路径为:

        d:datadb1mongod.log

        d:datadb2mongod.log
        d:datadb3mongod.log

    二、写配置文件

    我们来写一个配置文件:

    第一个配置文件如下: d:datadb1mongod.conf

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

    第二个配置文件如下: d:datadb2mongod.conf

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

    第三个配置文件如下: d:datadb3mongod.conf

    systemLog:
      destination: file
      path: d:data3mongod.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:datadb2mongod.conf
    mongod -f d:datadb3mongod.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()

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

    你好啊,谢谢你来看我。
  • 相关阅读:
    【CF446D】DZY Loves Games 高斯消元+矩阵乘法
    【CF542D】Superhero's Job 暴力
    【CF660E】Different Subsets For All Tuples 结论题
    【CF666C】Codeword 结论题+暴力
    【CF666E】Forensic Examination 广义后缀自动机+倍增+线段树合并
    【CF461E】Appleman and a Game 倍增floyd
    【CF471E】MUH and Lots and Lots of Segments 扫描线+并查集+线段树+set
    【CF480D】Parcels DP
    【CF497E】Subsequences Return 矩阵乘法
    SSAS 项目部署失败的问题
  • 原文地址:https://www.cnblogs.com/sitr/p/14057924.html
Copyright © 2011-2022 走看看