zoukankan      html  css  js  c++  java
  • mongodb 创建副本集(一台服务器)

    MongoDB副本集设置

    安装

    brew tap mongodb/brew
    brew install mongodb-community@4.4

    启动

    brew services start mongodb-community@4.4

    关闭

    brew services stop mongodb-community@4.4

    1. 关闭正在运行的MongoDB服务器
      brew services stop mongodb-community@4.4

    2. 创建数据库存放数据的文件夹
      cd /usr/local/var
      mkdir m1 m2 m3

    3. 通过指定 --replSet来启动mongodb
      mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
      '''
      实例名必须相同,只是端口号不同, 不然初始化的时候报错 mongoDB set name does not match
      '''
      mongod --port 27011 --dbpath "/usr/local/var/m1" --replSet m1

      mongod --port 27012 --dbpath "/usr/local/var/m2" --replSet m1

      mongod --port 27013 --dbpath "/usr/local/var/m3" --replSet m1

    4. 指定端口号启动(新开一个终端)
      mongo -port 27011

    5. 初始化配置
      rsconf = {
      _id: "m1",
      members: [
      {
      _id: 0,
      host: "127.0.0.1:27011"
      },
      {
      _id: 1,
      host: "127.0.0.1:27012"
      },
      {
      _id: 2,
      host: "127.0.0.1:27013"
      },
      ]}

      rs.initiate(rsconf)

    查看状态

    rs.status()

    删除副本集

    rs.remove('127.0.0.1:27013')

    测试副本集

    1.在主上创建库
    use zhoubo
    2.db.createCollection('zb')
    3.db.zb.insert({'name': 'zb'})
    4.启动从mongo
    mongo -port:27012
    5. show dbs # 报错not master and slaveOk=false 因为mongodb默认读取主,故需要从副本集读取时,需要设置db.getMongo().setSecondaryOk()
    6. show dbs show tables db.zb.find()
    { "_id" : ObjectId("6062ea0df27d393abaf37b01"), "name" : "zb" }
    测试成功

  • 相关阅读:
    随机生成字符串,可用来当id
    自己总结的关于uniapp项目用androidstuido打包成apk
    css3 滑动效果 门
    在数组里面随机获取随机的几个内容
    把一个数组分割成两个(不管奇数还是偶数)
    Mysql常用命令
    怎样才能彻底地删除多余输入法软件
    启动MySQL服务
    linux监控命令全覆盖
    浅谈MVC模式与SSH框架
  • 原文地址:https://www.cnblogs.com/robert-zhou/p/14597808.html
Copyright © 2011-2022 走看看