温馨提示×

debian中怎么配mongodb主从

小樊
47
2026-10-20 00:16:58
栏目: 云计算

在 Debian 下配置 MongoDB 主从(Replica Set 方式,推荐) 可分为以下几步。

⚠️ 注意:MongoDB 官方已不推荐使用老式 master-slave 模式,副本集(Replica Set) 才是标准做法,这里以副本集为例。


一、环境准备

假设有两台 Debian 机器:

角色 IP hostname
Primary 192.168.1.10 mongo1
Secondary 192.168.1.11 mongo2

(可加 Arbiter 做第三节点)


二、安装 MongoDB(两台都做)

sudo apt update
sudo apt install -y mongodb-org

或官方源方式(推荐):

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

关键配置

net:
  bindIp: 0.0.0.0
  port: 27017

replication:
  replSetName: rs0

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

重启:

sudo systemctl restart mongod
sudo systemctl enable mongod

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

mongosh

执行:

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

查看状态:

rs.status()

五、验证主从同步

在 Primary 写数据:

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

在 Secondary 查数据:

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

六、(可选)加仲裁节点

如果只有两台机器,可加 Arbiter:

rs.addArb("192.168.1.12:27017")

七、常见问题

  • Secondary 不能写(正常)
  • 防火墙要放行 27017
  • 时间必须同步(建议装 ntp)

如果你想要的是**老式 master-slave(非副本集)**配置,或者 Docker / 单机多实例 方式,我也可以给你写。

0 踩