温馨提示×

mongodb副本集debian怎配

小樊
39
2026-09-23 17:39:01
栏目: 云计算

下面给你一份**在 Debian 上配置 MongoDB 副本集(Replica Set)**的实用步骤,适用于 MongoDB 6.x / 7.x(老版本类似,命令略有差异)。


一、环境准备

假设有 3 台 Debian 服务器:

主机名 IP
mongo1 192.168.1.11
mongo2 192.168.1.12
mongo3 192.168.1.13

副本集最少 3 台(或 1 主 + 1 从 + 1 仲裁)


二、安装 MongoDB(每台机器)

sudo apt update
sudo apt install -y gnupg curl

1. 添加 MongoDB 官方源

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.users.insertOne({ name: "tom" })

从节点读(需允许)

rs.secondaryOk()
db.users.find()

六、常见问题

1️⃣ 一直 RECOVERING

  • 防火墙未放行 27017
  • 时间不同步(装 NTP)
sudo apt install ntp

2️⃣ 主机名解析问题

建议 /etc/hosts 加:

192.168.1.11 mongo1
192.168.1.12 mongo2
192.168.1.13 mongo3

并用主机名配置副本集


七、可选:加仲裁节点

rs.addArb("192.168.1.14:27017")

如果你告诉我:

  • MongoDB 版本
  • Debian 版本
  • 单机 / 云服务器 / Docker

我可以给你更精准的配置示例。

0 踩