如何将本地Meteor MongoDB导入DigitalOcean Ubuntu服务器?
解决mongorestore提示"don't know what..."的问题
这个报错大概率是备份文件路径不对或者命令参数缺失导致的,我帮你一步步排查解决:
1. 先锁定备份文件的实际位置
你提到本地导出的备份在dump/meteor,但部署到服务器后,这个目录的位置未必和你当前执行命令的路径一致:
- 登录服务器后,用
find / -name "dump" -type d全局搜索dump目录的绝对路径(比如mup部署的应用通常在/opt/你的应用名目录下,备份可能就在这里)。 - 找到后进入
dump/meteor子目录,执行ls确认里面有.bson和.metadata.json格式的备份文件——如果没有,说明备份文件没正确上传到服务器,或者路径找错了。
2. 改用绝对路径执行mongorestore
相对路径很容易因为当前目录不对出问题,直接用找到的绝对路径执行命令,比如备份目录是/opt/tapshop/dump/meteor,命令就改成:
mongorestore --db tapshop /opt/tapshop/dump/meteor
3. 加上MongoDB认证参数(关键)
mup部署的MongoDB默认开启了认证,没加认证参数也会导致奇怪的报错:
- mup默认的MongoDB用户名是
meteor,密码可以在本地的mup.js配置文件里找到,或者登录服务器查看/opt/tapshop/config/mongo.conf。 - 带认证的命令示例:
mongorestore --db tapshop --username meteor --password 你的数据库密码 /opt/tapshop/dump/meteor
4. 排查文件权限问题
如果还是报错,可能是备份文件或数据库的权限不足:
- 给dump目录赋予可读权限:
sudo chmod -R 755 /opt/tapshop/dump - 或者用sudo执行mongorestore,确保有足够权限访问数据库和备份文件:
sudo mongorestore --db tapshop /opt/tapshop/dump/meteor
按这个流程操作,应该就能顺利恢复数据库了。
内容的提问来源于stack exchange,提问作者Bryce
相关产品推荐
相关产品推荐

