• MongoDB学习日记(1):Windows搭建复制集(Replica Set)


    一.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)可以直接点击文件运行。 

  • 相关阅读:
    Java多线程编程核心技术---对象及变量的并发访问(二)
    Java多线程编程核心技术---对象及变量的并发访问(一)
    Java多线程编程核心技术---Java多线程技能
    普通浏览器GET请求与Ajax的GET请求的区别
    【python】-- 面向对象引子、概念
    【python】-- json & pickle、xml、requests、hashlib、shelve、shutil、configparser、subprocess
    【python】-- 内置函数、软件目录开发规范(代码编码风格)
    【python】-- 装饰器、迭代器、生成器
    【python】-- 递归函数、高阶函数、嵌套函数、匿名函数
    【python】-- 函数非固定参数,返回值(return)
  • 原文地址:https://www.cnblogs.com/mezhouyang/p/7679192.html
Copyright © 2020-2023  润新知