微系列:7、在Centos系统中,搭建MongoDB副本集

2023-01-09 18:54:33 浏览数 (1)

首先需要了解两个概念。一、什么是MongoDB副本集?副本集是一组mongod维护相同数据集的实例,它提供了数据的冗余备份,在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性;并且可以在服务中断异常中恢复数据。二、MongoDB副本集的原理?mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。常见的搭配方式为:一主一从、一主多从。主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。 https://www.h5w3.com/python/538610.html

一、安装mongodb

1、配置yum源

创建mongodb的源文件 /etc/yum.repos.d/mongodb-org-5.0.repo,添加内容

代码语言:javascript复制
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

然后直接安装,执行

代码语言:javascript复制
yum install -y mongodb-org

二、修改配置

1、创建key文件

key文件的作用是,为副本集之间做通信认证

代码语言:javascript复制
openssl rand -base64 756 > /opt/mongodb/mongodb.key
chmod 400 /opt/mongodb/mongodb.key
chown mongod:mongod /opt/mongodb/mongodb.key

2、修改配置文件

安装后,在 /etc/mongodb.conf 找到配置文件

代码语言:javascript复制
security:
  keyFile: /opt/mongodb/mongodb.key
replication:
  replSetName: "rs0"
net:
   bindIp: localhost,本机的ip地址

三、启动

更改sock文件权限

代码语言:javascript复制
# 使用yum安装,默认的用户为mongod
chown mongod /tmp/mongodb-27017.sock

启动节点

代码语言:javascript复制
mongod --config <path-to-config>

其他节点安装如上,确保key文件相同

四、初始化副本集

执行命令 mongosh,进入命令行界面,执行以下命令

代码语言:javascript复制
rs.initiate( {
   _id : "rs0",
   members: [
      { _id: 0, host: "192.168.0.1:27017" },
      { _id: 1, host: "192.168.0.2:27017" },
      { _id: 2, host: "192.168.0.3:27017" }
   ]
})

五、创建用户

执行命令mongosh,进入命令行界面,执行以下命令

代码语言:javascript复制
db.createUser({user: "admin", pwd: passwordPrompt(), 
roles: [{role:"userAdminAnyDatabase", db:"admin"},
{role:"readWriteAnyDatabase",db:"admin"}]})

0 人点赞