温馨提示×

centos mongodb集群怎么搭

小樊
45
2026-10-11 18:01:10
栏目: 云计算

下面给你一个**在 CentOS 上搭建 MongoDB 副本集(最常用、最推荐的集群方式)**的完整思路与示例。
如果你是想要 分片集群(Sharding),我也可以再单独说。


一、环境准备(示例)

假设 3 台 CentOS 7/8 服务器:

节点 IP 角色
node1 192.168.1.101 Primary
node2 192.168.1.102 Secondary
node3 192.168.1.103 Secondary(可投仲裁)

MongoDB 版本示例:6.0 / 7.0(步骤通用)


二、每台机器都要做

1. 配置 MongoDB yum 源

cat > /etc/yum.repos.d/mongodb-org.repo <<EOF
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
EOF

CentOS 7 改成 redhat/7

2. 安装 MongoDB

yum install -y mongodb-org

3. 创建数据与日志目录

mkdir -p /data/mongodb
chown -R mongod:mongod /data/mongodb

三、配置 MongoDB(重点)

编辑配置文件 /etc/mongod.conf

storage:
  dbPath: /data/mongodb

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true

net:
  bindIp: 0.0.0.0
  port: 27017

replication:
  replSetName: rs0

启动服务:

systemctl enable mongod
systemctl start mongod

四、初始化副本集(只在 Primary 节点执行)

进入 mongo shell:

mongosh

执行:

rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "192.168.1.101:27017" },
    { _id: 1, host: "192.168.1.102:27017" },
    { _id: 2, host: "192.168.1.103:27017" }
  ]
})

查看状态:

rs.status()

五、验证集群

在主节点插入数据:

use test
db.user.insert({name:"tom"})

在从节点查看(需先执行):

rs.secondaryOk()
db.user.find()

六、常见问题

1. 防火墙

firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload

2. 时间同步

yum install -y chrony
systemctl enable chronyd

3. 仲裁节点(可选)

rs.addArb("192.168.1.104:27017")

七、如果你要的是「分片集群」

结构会是:

  • Config Server(3台)
  • Router(mongos)
  • Shard(副本集 × N)

可以告诉我:

  • MongoDB 版本
  • 是否生产环境
  • 数据量级别

我可以直接给你分片集群完整部署方案。

0 踩