MongoDB 分片复制集集群搭建

MongoDB集群搭建
本文详细介绍如何搭建MongoDB集群,包括配置节点、分片节点、路由节点的创建与配置过程,同时涉及常见问题解决方法及安全认证配置。

一、系统环境与集群架构

系统&软件 版本
VMware Workstation 15 Pro
CentOS 7.6.1810
MongoDB 4.4.4

准备:将 mongodb-linux-x86_64-rhel70-4.4.4.tgz 导入 /home 并完成解压

tar -zxvf mongodb-linux-x86_64-rhel70-4.4.4.tgz
mv mongodb-linux-x86_64-rhel70-4.4.4 mongodb

集群架构图

在这里插入图片描述

二、你可能遇到的问题

1、初始化集群时报错:“Our set name did not match that of the request target, requestTarget:192.168.32.102:27019”

在这里插入图片描述

出现这个问题的原因可能是因为 27019 这个节点的配置文件中 replSet 属性的值与集群 _id 的值不同所导致的。

2、从节点查询数据报错:“not master and slaveOk=false” 如图所示:

在这里插入图片描述

执行如下命令即可

rs.secondaryOk()

3、开启密码校验后 Spring Boot 连接 MongoDB 报错:Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName=(但是在命令行里进行用户验证和操作数据库没问题)

出现用户可以在路由服务器登录并成功校验身份后可对数据库进行添加、删除、查询数据等操作,但是用 Spring Boot 代码连接就报错的现象。很有可能是因为你在创建当前普通用户时没有执行切换数据库命令(use 数据库名)。所以处理这个问题的方式可以是用管理员身份登录,将原先用户删除,然后切换数据库再重新创建用户即可。

三、配置节点集群搭建

1、启动配置节点

配置节点集群:用以存储 MongoDB 路由集群配置信息

# 配置节点数据存放路径
mkdir -p /data/mongo/config1
mkdir /data/mongo/config2
mkdir /data/mongo/config3

/home/mongodb/bin 路径下创建第一个配置节点的配置文件:config-17017.cfg

# 数据库文件位置
dbpath=/data/mongo/config1
#日志文件位置
logpath=/data/mongo/config1/config.log
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork = true
bind_ip=0.0.0.0
port = 17017
# 表示是一个配置服务器
configsvr=true
#配置服务器副本集名称
replSet=configsvr

启动第一个配置节点

./mongod -f mongo_17017.cfg

在这里插入图片描述
/home/mongodb/bin 路径下创建第二个配置节点的配置文件:config-17018.cfg

# 数据库文件位置
dbpath=/data/mongo/config2
#日志文件位置
logpath=/data/mongo/config2/config.log
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork = true
bind_ip=0.0.0.0
port = 17018
# 表示是一个配置服务器
configsvr=true
#配置服务器副本集名称
replSet=configsvr

启动第二个配置节点

./mongod -f mongo_17018.cfg

/home/mongodb/bin 路径下创建第三个配置节点的配置文件:config-17019.cfg

# 数据库文件位置
dbpath=/data/mongo/config3
# 日志文件位置
logpath=/data/mongo/config3/config.log
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork = true
bind_ip=0.0.0.0
port = 17019
# 表示是一个配置服务器
configsvr=true
# 配置服务器副本集名称
replSet=configsvr

启动第三个配置节点


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值