在 CentOS 上迁移 MongoDB,常见有三种场景:同机换目录、跨机迁移、容器/云迁移。下面给你最实用、最稳妥的做法。
mongod --version
# 或
rpm -qa | grep mongo
⚠️ 迁移前后 大版本尽量一致(如 4.4 → 4.4),跨大版本要先升级。
cat /etc/mongod.conf | grep storage.dbPath
默认一般是:
/var/lib/mongo
systemctl stop mongod
适合:磁盘满了、换盘
cp -a /var/lib/mongo /data/mongo
vi /etc/mongod.conf
storage:
dbPath: /data/mongo
chown -R mongod:mongod /data/mongo
systemctl start mongod
systemctl stop mongod
tar czf mongo.tar.gz /var/lib/mongo
scp mongo.tar.gz root@新IP:/root/
# 安装同版本 MongoDB
tar xzf mongo.tar.gz -C /
chown -R mongod:mongod /var/lib/mongo
systemctl start mongod
✅ 优点:快、稳定、无需导出
适合:版本不同、云迁移
mongodump --out=/data/backup
scp -r /data/backup root@新IP:/data/
mongorestore /data/backup
✅ 可选参数:
mongodump --username admin --password xxx --authenticationDatabase admin
如果是 副本集:
chown -R mongod:mongod /var/lib/mongo
getenforce
# 如果是 Enforcing
setenforce 0
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload
| 场景 | 推荐方式 |
|---|---|
| 同机换盘 | 拷贝 dbPath |
| 同版本跨机 | 直接拷贝数据目录 |
| 不同版本 | mongodump |
| 云迁移 | mongodump + 云存储 |
如果你愿意,可以告诉我:
我可以给你 一步到位的具体命令。