在 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 做第三节点)
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
编辑配置文件:
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
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")
ntp)如果你想要的是**老式 master-slave(非副本集)**配置,或者 Docker / 单机多实例 方式,我也可以给你写。