下面以 Debian 11/12 为例,说明如何配置 MongoDB 副本集(Replica Set)。假设你有 3 台服务器(最简高可用方案)。
假设:
每台都安装 MongoDB(版本建议 6.x / 7.x)
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 $(lsb_release -cs)/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
编辑 /etc/mongod.conf
net:
port: 27017
bindIp: 0.0.0.0
replication:
replSetName: rs0
⚠️ 生产环境建议
bindIp只绑定内网 IP
sudo vim /etc/hosts
192.168.1.11 node1
192.168.1.12 node2
192.168.1.13 node3
sudo systemctl restart mongod
sudo systemctl enable mongod
进入 mongo shell:
mongosh
执行:
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "node1:27017" },
{ _id: 1, host: "node2:27017" },
{ _id: 2, host: "node3:27017" }
]
})
查看状态:
rs.status()
use test
db.user.insert({name:"tom"})
rs.secondaryOk()
db.user.find()
MongoDB 副本集中 只有 Primary 可写
如果只有 2 台机器:
rs.addArb("node3:27017")
确保 27017 端口互通:
sudo ufw allow 27017
如果你愿意,我可以:
直接告诉我你的场景即可。