温馨提示×

debian mongodb怎样配集群

小樊
47
2026-09-14 13:58:28
栏目: 云计算

下面给你一个在 Debian 上部署 MongoDB 副本集(Replica Set)集群的实用指南(最常用、最推荐的“集群”方式)。如果你是指 Sharded Cluster(分片集群),我也可以再补充。


一、环境准备

假设 3 台 Debian 服务器(推荐奇数节点):

主机名 IP
mongo1 192.168.1.11
mongo2 192.168.1.12
mongo3 192.168.1.13

MongoDB 5.0+ 要求 系统支持 AVX 指令集


二、安装 MongoDB(三台都执行)

1. 导入 MongoDB 官方源(以 7.0 为例)

sudo apt update
sudo apt install -y curl gnupg
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt update
sudo apt install -y mongodb-org

三、配置 MongoDB(三台)

编辑配置文件:

sudo nano /etc/mongod.conf

关键配置

storage:
  dbPath: /var/lib/mongodb

net:
  bindIp: 0.0.0.0
  port: 27017

replication:
  replSetName: rs0

bindIp 生产环境建议绑定内网 IP

重启服务:

sudo systemctl restart mongod
sudo systemctl enable mongod

四、初始化副本集(只需在一台执行)

登录 mongo shell:

mongosh

执行:

rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "192.168.1.11:27017" },
    { _id: 1, host: "192.168.1.12:27017" },
    { _id: 2, host: "192.168.1.13:27017" }
  ]
})

查看状态:

rs.status()

五、验证集群

主节点写入:

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

从节点读取(需先执行):

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

六、常见问题

1. 节点无法互通

  • 防火墙开放 27017
  • 云服务器安全组放行
sudo ufw allow 27017

2. 主机名解析问题

建议 /etc/hosts 配置:

192.168.1.11 mongo1
192.168.1.12 mongo2
192.168.1.13 mongo3

3. 添加/删除节点

rs.add("192.168.1.14:27017")
rs.remove("192.168.1.14:27017")

七、下一步(可选)

  • ✅ 开启 鉴权(用户名密码)
  • ✅ 配置 TLS
  • ✅ 部署 Sharded Cluster
  • ✅ 使用 Docker / Kubernetes

如果你愿意,可以告诉我:

  • MongoDB 版本
  • 是否是 云服务器
  • 是否需要 分片集群 / 高安全配置

我可以直接给你一套生产级配置

0