[数据库]MongoDB3副本部署

本文详细介绍了如何在CentOS7.9系统上安装MongoDB5.0.0,包括创建repo、安装特定版本、配置副本集、用户权限管理和添加安全证书的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境准备

名称版本
系统CentOS7.9
MongoDB5.0.0

1. 创建repo文件

cat >/etc/yum.repos.d/mongodb-org-5.0.repo<<EOF
[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
EOF

2. 安装

#安装5.0最新版
yum install -y mongodb-org

#安装指定版本(5.0.0)
yum install -y mongodb-org-5.0.0 mongodb-org-database-5.0.0 mongodb-org-server-5.0.0 mongodb-org-shell-5.0.0 mongodb-org-mongos-5.0.0 mongodb-org-tools-5.0.0

3. 修改配置文件

 vim /etc/mongod.conf
 bindIp: 127.0.0.1  <--将这里修改成本机的ip
 
 #添加下面几行
 replication:
   replSetName: "rs0"
#security:
#  authorization: enabled
#   keyFile: /var/lib/mongo/ssh/keyfile
#  clusterAuthMode: keyFile
setParameter:
  enableLocalhostAuthBypass: false

4. 启动mongo

systemctl start mongod

5. 主节点初始化副本集

mongo
以下带 '>' 开头均在mongo中执行
5.1创建集群
>config = {
  _id : "rs0",
  members : [
    {_id:0, host:"ip1:27017"},
    {_id:1, host:"ip2:27017"},
    {_id:2, host:"ip3:27017"},
  ]
}
5.2 初始化
> rs.initiate(config)
> rs.secondaryOk()
5.3 创建用户
>use admin
>db.createUser( { user: "root", pwd: "adminpasswd", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )
5.4 创建完成后退出再进入
mongo ip1:27017 --authenticationDatabase "admin" -u "root" -padminpasswd
5.5 创建用户user1,认证user1库
> use feiliks
> db.createUser( { user: "user1", pwd: "user1passwd", roles: [ { role: "readWrite", db: "user1" } ] } )
> db.getUsers()
> db.write.insertOne({"name":"readWrite"})
> show tables
5.6 验证库用户是否创建成功
mongo ip1:27017 --authenticationDatabase "user1" -u "user1" -puser1passwd
> db
> use user1
> show tables

6. 从节点认证

mongo
> rs.secondaryOk()
> use user1
> db.write.find()

7. 所有节点停止MongoDB

systemctl stop mongod

8. 创建证书

8.1 创建证书目录
mkdir /var/lib/mongo/ssh/
8.2 主节点创建证书
openssl rand -base64 90 -out /var/lib/mongo/ssh/keyfile
chown mongod.mongod /var/lib/mongo/ssh/keyfile
chmod 600 /var/lib/mongo/ssh/keyfile
8.3 将证书发送到从节点
scp keyfile root@ip2:/var/lib/mongo/ssh/
scp keyfile root@ip3:/var/lib/mongo/ssh/
8.4 在从节点修改keyfile权限
chown mongod.mongod /var/lib/mongo/ssh/keyfile

9. 修改配置文件并启动

#将原先加入的注释的配置文件取消注释
vi /etc/mongod.conf
security:
  authorization: enabled
   keyFile: /var/lib/mongo/ssh/keyfile
  clusterAuthMode: keyFile

10. 启动MongoDB

#先启动主节点,再启动从节点
systemctl start mongod

11. 验证

mongo ip1:27017 --authenticationDatabase "admin" -u "root" -padminpasswd
mongo ip1:27017 --authenticationDatabase "user1" -u "user1" -puser1passwd
mongo ip2:27017 --authenticationDatabase "admin" -u "root" -padminpasswd
mongo ip2:27017 --authenticationDatabase "user1" -u "user1" -puser1passwd
mongo ip3:27017 --authenticationDatabase "admin" -u "root" -padminpasswd
mongo ip3:27017 --authenticationDatabase "user1" -u "user1" -puser1passwd
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值