下面给你一个在 Debian 上配置 MongoDB 副本集(Replica Set)的实用步骤,适用于MongoDB 5.x / 6.x / 7.x(社区版)。
假设有 3 台 Debian 服务器(推荐奇数节点):
| 主机名 | IP |
|---|---|
| mongo1 | 192.168.1.11 |
| mongo2 | 192.168.1.12 |
| mongo3 | 192.168.1.13 |
如果是单机测试,也可在一台机器用不同端口模拟
sudo apt update
sudo apt install -y gnupg curl
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] \
https://repo.mongodb.org/apt/debian $(lsb_release -cs)/mongodb-org/6.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-org
编辑 /etc/mongod.conf
storage:
dbPath: /var/lib/mongodb
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
net:
bindIp: 0.0.0.0
port: 27017
replication:
replSetName: rs0
replSetName所有节点必须一致
sudo systemctl restart mongod
sudo systemctl enable mongod
mongo
(MongoDB 6+ 可用 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:"abc"})
rs.secondaryOk()
db.user.find()
bindIp 不要只写 127.0.0.1建议在 /etc/hosts 添加:
192.168.1.11 mongo1
192.168.1.12 mongo2
192.168.1.13 mongo3
并使用主机名配置副本集
mongod --port 27018 --dbpath /data2 --replSet rs0
如果你需要:
告诉我你的具体场景,我可以直接给你完整配置。