• MongoDB副本集集群搭建


    软件下载

    进去这个网站,选择自己想要的版本、要安装的系统,还有格式,我选的是tgz格式
    https://www.mongodb.com/try/download/community

    安装

    以下配置三台机器都要运行

    将下载好的文件上传到centons,并解压重命名放置到指定目录

    tar -zvxf mongodb-linux-x86_64-rhel80-4.4.18.tgz
    mv mongodb-linux-x86_64-rhel80-4.4.18 /data/mongodb

    进入mongodb根目录创建文件夹,并在log目录下创建logs.log日志文件

    mkdir data etc log
    cd log
    touch logs.log

    新建配置项 dbpath:存放数据的目录
    logpath:存放日志的
    fork: 守护进程
    logappend: mongo重启后是新开一个文件存放日志还是还在当前日志文件存放,默认是flase
    bind_ip:当前机器IP地址
    port:开放的端口
    replSet:集群名称

    vi /data/mongodb/etc/mongodb.conf

    dbpath=/data/mongodb/data
    logpath=/data/mongodb/log/logs.log
    fork=true
    logappend=true
    bind_ip=0.0.0.0
    port=27017
    replSet=aps-mongo

    启动

    cd /data/mongodb/bin/ ./mongod --config /data/mongodb/etc/mongodb.conf

    初始化

    ./mongo 192.168.1.1:27017

    主节点上运行,执行命令后,会出现 aps-mongo:SECONDARY>, pas-mongo表示集群的名称, SECONDARY:表示是从节点
    将IP改掉之后执行这个命令,当看到 aps-mongo:PRIMARY> 时,说明执行的这个IP就是主节点

    初始化配置节点

    rs.initiate({
    “_id” : “aps-mongo”,
    “members” : [
    { “_id” : 0, “host” : “192.168.1.1:27017” },
    { “_id” : 1, “host” : “192.168.1.2:27017” },
    { “_id” : 2, “host” : “1192.168.1.3:27017” }
    ]
    })

    查看配置
    rs.conf()
    查看集群状态
    rs.status()

    测试
    如果成功那么说明这个副本集集群就搭建成功了,在Navicat中连接,通过副本集方式连接,填入3个集群和地址

    use mydb
    db.acc.insert({UserName:“123”,password:“123456”})
    show dbs

    得到:
    aps-mongo:SECONDARY> show dbs
    admin 0.000GB
    config 0.000GB
    local 0.001GB
    mydb 0.000GB
    sdb-test 0.000GB

    从机开启读写操作
    通过命令连接其它两台从节点机器(这个不行,测试发现开启了也没用,只有主节点才有读写群里,另外两台机器一个备份一个仲裁)

    查看是否开启

    得到:
    uncaught exception: Error: listDatabases failed:{
    “topologyVersion” : {
    “processId” : ObjectId(“637f75d1027181a9107ec527”),
    “counter” : NumberLong(4)
    },
    “operationTime” : Timestamp(1669345834, 1),
    “ok” : 0,
    “errmsg” : “not master and slaveOk=false”,
    “code” : 13435,
    “codeName” : “NotPrimaryNoSecondaryOk”,
    “$clusterTime” : {
    “clusterTime” : Timestamp(1669345834, 1),
    “signature” : {
    “hash” : BinData(0,“AAAAAAAAAAAAAAAAAAAAAAAAAAA=”),
    “keyId” : NumberLong(0)
    }
    }
    }

    这句说明没有开启读写操作
    not master and slaveOk=false

    开启

    rs.slaveOk()

    查看是否开启

    show dbs
    得到:
    aps-mongo:SECONDARY> show dbs
    admin 0.000GB
    config 0.000GB
    local 0.001GB
    mydb 0.000GB
    sdb-test 0.000GB

  • 相关阅读:
    nn.Embedding()的原理
    美国Westar光学测试设备改造升级(精通TestStand编程管理软件)
    《21天精通TypeScript-3》-安装搭建TypeScript开发环境.md
    274. H 指数
    用Python实现链表---单向循环链表
    2.5 数字传输系统
    隐私计算头条周刊(7.31-8.6)
    解决idea maven 不使用本地库jar包问题
    更健康舒适更科技的照明体验!SUKER书客护眼台灯 L1上手体验
    在微服务架构中使用JWT
  • 原文地址:https://blog.csdn.net/Gscsd_T/article/details/128173234