下面给你一个在 Debian 上部署 MongoDB 副本集(Replica Set)集群的实用指南(最常用、最推荐的“集群”方式)。如果你是指 Sharded Cluster(分片集群),我也可以再补充。
假设 3 台 Debian 服务器(推荐奇数节点):
| 主机名 | IP |
|---|---|
| mongo1 | 192.168.1.11 |
| mongo2 | 192.168.1.12 |
| mongo3 | 192.168.1.13 |
MongoDB 5.0+ 要求 系统支持 AVX 指令集
sudo apt update
sudo apt install -y curl gnupg
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
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.user.insert({name:"tom"})
从节点读取(需先执行):
rs.secondaryOk()
db.user.find()
sudo ufw allow 27017
建议 /etc/hosts 配置:
192.168.1.11 mongo1
192.168.1.12 mongo2
192.168.1.13 mongo3
rs.add("192.168.1.14:27017")
rs.remove("192.168.1.14:27017")
如果你愿意,可以告诉我:
我可以直接给你一套生产级配置。