下面给你一份**在 Debian 上配置 MongoDB 副本集(Replica Set)**的实用步骤,适用于 MongoDB 6.x / 7.x(老版本类似,命令略有差异)。
假设有 3 台 Debian 服务器:
| 主机名 | IP |
|---|---|
| mongo1 | 192.168.1.11 |
| mongo2 | 192.168.1.12 |
| mongo3 | 192.168.1.13 |
副本集最少 3 台(或 1 主 + 1 从 + 1 仲裁)
sudo apt update
sudo apt install -y gnupg curl
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.users.insertOne({ name: "tom" })
rs.secondaryOk()
db.users.find()
sudo apt install ntp
建议 /etc/hosts 加:
192.168.1.11 mongo1
192.168.1.12 mongo2
192.168.1.13 mongo3
并用主机名配置副本集
rs.addArb("192.168.1.14:27017")
如果你告诉我:
我可以给你更精准的配置示例。