惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
博客园_首页
T
Tailwind CSS Blog
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东
S
SegmentFault 最新的问题
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
Jina AI
Jina AI
WordPress大学
WordPress大学
U
Unit 42
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog

博客园 - 百衲本

centos7部署Nacos集群模式 centos7 yum快速安装clickhouse单机版 k8s高可用部署Seata kubernetes中pod磁盘占用排查 jumpserver V3 终端常用操作 Python 列表生成式、字典生成式与生成器表达式 Python 的可迭代对象、迭代器对象与生成器 python email模块自动化操作邮件 python yagmail 模块自动化操作邮件 python自动化操作PDF 国内企业邓白氏编码免费申请流程 Python psutil模块 免费公共API调用清单 Python pathlib 模块 容器网络故障排查:从 ping 到 tcpdump 的全链路思路 systemd详解 APP性能指标 Linux 上禁用 USB 存储设备 线上故障的排查清单,运维小哥拿走不谢!
Centos7 副本集模式部署 MongoDB
百衲本 · 2026-03-19 · via 博客园 - 百衲本

1.安装并配置MongoDB 副本集

#添加yum源
vim /etc/yum.repos.d/mongo.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-4.4.asc

yum install -y mongodb-org


mkdir -p /data/mongo
mkdir -p /logs/mongo
touch /logs/mongo/mongod.log
openssl rand -base64 512 > /data/mongo/mongo.key #其他节点必须拷贝该文件,节点文件内容必须一致
chmod 400 /data/mongo/mongo.key

chown -R mongod:mongod /data/mongo
chown -R mongod:mongod /logs/mongo


vim /etc/mongod.conf
systemLog:
  destination: file
  logAppend: true
  path: /logs/mongo/mongod.log
storage:
  dbPath: /data/mongo
  journal:
    enabled: true
processManagement:
  timeZoneInfo: /usr/share/zoneinfo
net:
  port: 27017
  bindIp: 0.0.0.0
security:
  authorization: enabled
  keyFile: /data/mongo/mongo.key
replication:
  replSetName: rs0

systemctl start mongod
systemctl status mongod
systemctl enable mongod


#初始化集群
 mongo --port 27017 #非本机 直接后面接服务器地址和端口 192.168.xx.xx:27017,注意替换下面地址为实际集群节点地址
rs.initiate( {
   _id : "rs0",
   members: [
      { _id: 0, host: "192.168.200.101:27017" },
      { _id: 1, host: "192.168.200.102:27017" },
      { _id: 2, host: "192.168.200.103:27017" }
   ]
})

rs.status()  #查看节点状态及角色

2.创建用户

mongo
use admin
db.createUser({ user:'admin',pwd:'ynOWq$%xWO3pvt2a ',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
db.auth('admin','ynOWq$%xWO3pvt2a ')
db.grantRolesToUser( "admin" , [ { role: "dbOwner", db: "admin" },{ "role": "clusterAdmin", "db": "admin" },{ "role": "userAdminAnyDatabase", "db": "admin" },{ "role": "dbAdminAnyDatabase", "db": "admin" }])

#创建root用户
db.createUser({user:"root",pwd:"9uKlHUVHS^L78dJB",roles:[{role:"root",db:"admin"}]});
db.grantRolesToUser ( "root", [ { role: "__system", db: "admin" } ] )

3.测试

mongo #在主服务上操作,未认证用户可以通过rs.status() 查看 PRIMARY为master
use admin
db.auth('root','9uKlHUVHS^L78dJB')
rs.config(); #查看配置
rs.printSecondaryReplicationInfo() #检查复制滞后
db.hello()  #参考 https://blog.csdn.net/wilsonzane/article/details/135388006

#读写测试
db.test.insert({ a:1 })  #master节点

mongo #SECONDARY节点
use admin
db.auth('root','9uKlHUVHS^L78dJB')
rs.secondaryOk() #默认SECONDARY节点不允许读
db.test.find({ a:1 })
{ "_id" : ObjectId("6731dc3dc131276c008d0459"), "a" : 1 }

4.客户端工具

4.1 打开链接根据平台下载对应的软件包并安装

https://www.mongodb.com/try/download/compass

4.2配置客户端连接

打开 MongoDBCompass,点击 "New Connection" 按钮,在 "Connection String 输入框中,输入副本集的连接字符串。

格式如下

"mongodb://主节点IP:主节点端口,从节点1IP:从节点1端口,从节点2IP:从节点2端口/?replicaSet=副本集名称"
以我们的副本集为例:
"mongodb://192.168.200.101:27017,192.168.200.102:27017,192.168.200.103:27017/replicaSet=rs0"

image

image

image

mogo
> use admin
switched to db admin
> db.auth('mongoAdmin','mongozd1103!')
1

 db.grantRolesToUser("mongoAdmin", [
        { role: "dbAdmin", db: "direct-rent" }
 ]); 
 
 
mongodump  --uri='mongodb://zdmongo:zdblmongo!@192.168.60.181:27017/direct-rent' #默认会在当前目录下创建dump目录
mongorestore --uri="mongodb://root:9uKlHUVHS^L78dJB@192.168.200.102:27017" /mnt/dump