在 Ubuntu 上部署 MongoDB 集群,通常有三种常见方式:
下面我按最实用的副本集方案给你讲,最后再补充分片集群思路。
假设你有 3 台 Ubuntu 服务器(或一台机器开 3 个端口也行):
| 节点 | IP |
|---|---|
| node1 | 192.168.1.101 |
| node2 | 192.168.1.102 |
| node3 | 192.168.1.103 |
MongoDB 版本建议:6.x / 7.x
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/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt update
sudo apt install -y mongodb-org
编辑(所有节点):
sudo vim /etc/mongod.conf
关键配置:
net:
port: 27017
bindIp: 0.0.0.0
replication:
replSetName: rs0
bindIp生产环境建议绑定具体 IP
重启:
sudo systemctl restart mongod
sudo systemctl enable mongod
登录 mongo:
mongosh
执行:
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "192.168.1.101:27017" },
{ _id: 1, host: "192.168.1.102:27017" },
{ _id: 2, host: "192.168.1.103:27017" }
]
})
查看状态:
rs.status()
rs.isMaster()
写入测试:
use test
db.user.insert({name:"tom"})
在其他节点:
rs.secondaryOk()
db.user.find()
如果你需要 真正的大数据集群:
App → Mongos → Config → Shard1 / Shard2
sh.addShard()如果你需要,我可以给你一套完整分片集群配置示例。
❌ 防火墙没开 27017
✅ ufw allow 27017
❌ 副本集名称不一致
✅ rs0 必须一样
❌ 用 localhost 初始化
✅ 用 IP
我可以直接给你 可复制的配置文件 + 命令。