温馨提示×

如何配置linux mongodb主从

小樊
47
2026-10-01 12:01:16
栏目: 云计算

在 Linux 下配置 MongoDB 主从(Replica Set 方式,推荐),可以按照以下步骤操作。MongoDB 官方已不推荐使用老式 master-slave,而是使用 Replica Set(副本集),它天然包含主节点和从节点。


一、环境准备

假设有两台 Linux 服务器:

  • 主节点(Primary):192.168.1.10
  • 从节点(Secondary):192.168.1.11

MongoDB 版本:4.x / 5.x / 6.x(步骤通用)


二、安装 MongoDB(主从都执行)

# 以 Ubuntu 为例
sudo apt update
sudo apt install -y mongodb-org

CentOS:

sudo yum install -y mongodb-org

三、配置 MongoDB(主从都修改)

编辑配置文件:

sudo vim /etc/mongod.conf

关键配置

net:
  bindIp: 0.0.0.0
  port: 27017

replication:
  replSetName: rs0

replSetName 主从必须一致
bindIp 建议先 0.0.0.0 测试,生产环境限制 IP

重启服务:

sudo systemctl restart mongod

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

登录 MongoDB:

mongo

执行:

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

查看状态:

rs.status()

五、验证主从同步

主节点写入

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

从节点查询

mongo
rs.slaveOk()   # 老版本
# 或
rs.secondaryOk() # 新版本
db.user.find()

能看到数据即同步成功 ✅


六、常见问题

1. 从节点不能写

副本集中 只有 Primary 可写

2. 同步慢

检查:

  • 网络
  • oplog 大小
rs.printReplicationInfo()

3. 添加新节点

rs.add("192.168.1.12:27017")

七、老式 master-slave(不推荐)

如果你只是想用传统主从:

master: true   # 主
slave: true    # 从
source: 192.168.1.10

⚠️ 官方已废弃,不建议生产使用


如果你需要:

  • Docker 版
  • 三节点 + 仲裁节点
  • 鉴权(账号密码)
  • 云服务器公网配置

可以告诉我,我给你具体方案。

0 踩