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

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
罗磊的独立博客
B
Blog RSS Feed
C
Check Point Blog
Project Zero
Project Zero
D
Docker
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Palo Alto Networks Blog
L
LINUX DO - 热门话题
Scott Helme
Scott Helme
NISL@THU
NISL@THU
L
LangChain Blog
C
Cisco Blogs
Engineering at Meta
Engineering at Meta
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
S
Schneier on Security
MyScale Blog
MyScale Blog
博客园_首页
博客园 - 三生石上(FineUI控件)
C
CERT Recently Published Vulnerability Notes
美团技术团队
V
Visual Studio Blog
T
The Exploit Database - CXSecurity.com
Recent Announcements
Recent Announcements
G
GRAHAM CLULEY
T
Tor Project blog
V
Vulnerabilities – Threatpost
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Stack Overflow Blog
Stack Overflow Blog
P
Privacy International News Feed
Security Latest
Security Latest
W
WeLiveSecurity
aimingoo的专栏
aimingoo的专栏
Hugging Face - Blog
Hugging Face - Blog
Google Online Security Blog
Google Online Security Blog
V2EX - 技术
V2EX - 技术
The Last Watchdog
The Last Watchdog
博客园 - Franky
T
Tenable Blog
云风的 BLOG
云风的 BLOG
D
DataBreaches.Net
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Latest news
Latest news
N
News and Events Feed by Topic
Cloudbric
Cloudbric
Schneier on Security
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Blog — PlanetScale
Blog — PlanetScale

博客园 - 百衲本

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