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

你可能感兴趣的:(Mongo,mongodb,数据库,nosql)