在 Debian 上迁移 MongoDB,常见场景有 同机迁移目录 / 跨服务器迁移 / 升级迁移。下面按最常用、最稳妥的方式给你一个完整方案,适用于 MongoDB 4.4 / 5.x / 6.x / 7.x(APT 安装方式)。
一、迁移前准备
1️⃣ 确认版本
mongod --version
mongo --version # 或 mongosh
2️⃣ 停止 MongoDB
sudo systemctl stop mongod
⚠️ 一定要先停服,否则数据可能损坏
二、迁移数据目录(本地迁移)
默认路径
/var/lib/mongodb
/etc/mongod.conf
1️⃣ 复制数据目录
sudo cp -a /var/lib/mongodb /new/path/mongodb
或移动:
sudo mv /var/lib/mongodb /new/path/mongodb
2️⃣ 修改配置文件
sudo nano /etc/mongod.conf
修改:
storage:
dbPath: /new/path/mongodb
3️⃣ 修复权限(非常重要)
sudo chown -R mongodb:mongodb /new/path/mongodb
4️⃣ 重启 MongoDB
sudo systemctl start mongod
sudo systemctl status mongod
三、跨服务器迁移(推荐 ✅)
✅ 方法一:mongodump / mongorestore(最安全)
源服务器
mongodump --out /backup/mongo-$(date +%F)
拷贝到目标服务器
scp -r /backup/mongo-2026-01-21 user@target:/backup/
目标服务器
mongorestore /backup/mongo-2026-01-21
✅ 适用场景:
- 不同版本
- 不同架构
- 云服务器迁移
✅ 方法二:直接拷贝数据目录(仅限同版本)
源服务器
systemctl stop mongod
tar czf mongo.tar.gz /var/lib/mongodb
目标服务器
systemctl stop mongod
tar xzf mongo.tar.gz -C /
chown -R mongodb:mongodb /var/lib/mongodb
systemctl start mongod
⚠️ 必须 MongoDB 主版本一致
四、配置文件迁移
/etc/mongod.conf
常见需要同步的内容:
bindIp: 0.0.0.0
port: 27017
storage.dbPath
systemLog.path
五、用户 / 权限迁移
如果启用了认证:
security:
authorization: enabled
✅ 用户数据在 admin 库中,使用 mongodump 会自动迁移
❌ 直接拷贝目录时也会保留
六、升级迁移(Debian + MongoDB)
1️⃣ 备份
mongodump --out /backup
2️⃣ 升级 MongoDB
sudo apt update
sudo apt upgrade mongod
3️⃣ 启动并验证
mongosh
show dbs
七、常见问题排查
❌ 启动失败
journalctl -xe
cat /var/log/mongodb/mongod.log
❌ 权限错误
sudo chown -R mongodb:mongodb /var/lib/mongodb
❌ 端口占用
ss -lntp | grep 27017
八、推荐迁移方案总结
| 场景 | 推荐方式 |
|---|---|
| 同机换目录 | 拷贝 + 改配置 |
| 跨服务器 | mongodump |
| 升级 | dump + 升级 |
| Docker | volume 迁移 |
如果你愿意,可以告诉我:
- ✅ Debian 版本(10 / 11 / 12)
- ✅ MongoDB 版本
- ✅ 是否跨服务器
- ✅ 是否启用认证
我可以给你 精确到命令级别 的迁移方案。