美文网首页
mongodb建立复制集

mongodb建立复制集

作者: maomizone | 来源:发表于2022-04-08 13:02 被阅读0次
    我需要使用复制集是因为,我用mongoose写接口,需要用到事务,然后我发现竟然还要搞什么复制集,真是麻烦啊,因为我是前端,被领导逼着一周内做出来东西,还让我们自己写接口,只能选了这个坑爹的数据库,毕竟这个能快速上手,结果发现这玩意的生态不是很好啊,还得看英文文档,查个资料也是千辛万苦的,算了不吐槽了,总算是把复制集搞定了,记录下,以免忘记
    • 公司电脑是win7,只能装4.0几的mongodb,先去下载软件:https://www.mongodb.com/try/download/community
    • 选择zip,win7系统的原因我下的是4.0.28zip,如果是win10,win11就下最新版的
    • 我建立了文件夹,D:\Program Files\MongoDB\Server\4.2,将zip解压到这个里面,然后新建红框中的三个文件夹


      1.png
    • 在config、log、data中都新建三个文件夹


      2.png
    • config/db1文件夹中新建一个文件mongod.cfg,内容如下
    • config/db2以及config/db2文件夹中新建一个文件mongod.cfg,内容和db1的类似,把db1改成db2/db3,db2端口号设置为27018,db3端口号设置为27019
    # mongod.conf
    
    # Where and how to store data.
    storage:
      # dbPath为当前节点数据存储的路径
      dbPath: D:\Program Files\MongoDB\Server\4.2\data\db1
      # journal的enabled为是否开启日志
      journal:
      enabled: true
    # 这部分的配置很重要,直接影响到内存的占用,cacheSizeGB为当前节点的
    # monggo服务需要占用服务器内存的大小,cacheSizeGB大小的配置请查看
    # 下面泪的部分
      wiredTiger:
      engineConfig:
      cacheSizeGB: 5
    
    # mongod日志文件的配置,mongodb服务出现问题可以查看此日志
      systemLog:
      destination: file
      logAppend: true
      path:  D:\Program Files\MongoDB\Server\4.2\log\db1\mongod.log
    
    # network interfaces,port为此mongo节点的开放的端口,
    # bindIp为开放访问的Ip,0.0.0.0意思是任意Ip地址都可访问,
    # 这就涉及到权限问题,你也可以只设置需要访问此mongo节点的ip
    net:
      port: 27017
      bindIp: 0.0.0.0
    
    # 安全配置的权限认证开启
    # security:
    #   authorization: enabled 
    # 如果节点在不同的服务器上开启了认证,则需要使用keyfile去认证,并在下面路径的目录中创建rs0.key文件
    #   keyFile: D:\Program Files\MongoDB\Server\4.2\keyfile\rs0.key
    
    # 复制集配置,replSetName所属
      replication:
      replSetName: rs0
    
    • log/db1,og/db2,og/db3文件夹中新建一个文件mongod.log,不需要写什么内容进去


      3.png
    • 开始设置自启动的服务:开启三个cmd命令,分别输入以下命令

    mongod --config "D:\Program Files\MongoDB\Server\4.2\config\db1\mongod.cfg" --serviceName "MongoDB1" --serviceDisplayName "MongoDB1" --install
    
    mongod --config "D:\Program Files\MongoDB\Server\4.2\config\db2\mongod.cfg" --serviceName "MongoDB2" --serviceDisplayName "MongoDB2" --install
    
    mongod --config "D:\Program Files\MongoDB\Server\4.2\config\db3\mongod.cfg" --serviceName "MongoDB3" --serviceDisplayName "MongoDB3" --install
    
    • 在键盘上按 “WIN+R”,输入“services.msc”指令确定,检查服务是否启动了,没有启动自己手动来全部启动


      4.png
    • 使用下面命令进入一个mongo的服务:

    mongo -p 27017
    
    • 执行下面命令将mongo的三个服务节点挂载到rs0的复制集下:运行后有个结果是1就是成功,懒的截图了
    config = {
        "_id" : "rs0",
        "members": [
            { "_id" : 0, "host" : "127.0.0.1:27017" },
            { "_id" : 1, "host" : "127.0.0.1:27018" },
            { "_id" : 2, "host" : "127.0.0.1:27019" }
        ]
    }
    rs.initiate(config)
    
    • 然后使用图形化界面工具连接我们三个数据库


      5.png
    • 接下来我们要在master数据库是上面进行操作,打开一个shell,执行以下语句

    db.users.insert({name: 'andy', age: 18})
    
    6.png
    • 然后查看这个数据库是否同步了


      7.png
    • 复制集建立成功!接下来去用mongoose写事务

    相关文章

      网友评论

          本文标题:mongodb建立复制集

          本文链接:https://www.haomeiwen.com/subject/zahysrtx.html