使用mongorestore恢复至MongoDB Atlas报错:系统找不到指定文件
兄弟,我一眼就揪出问题所在了——你的mongorestore命令里没告诉它要恢复的dump数据在哪里!这就是为啥会弹出“系统找不到指定文件”的错误。
问题拆解
当你只输入mongorestore时,它默认会在当前命令行的工作目录下找dump文件夹;但一旦加上Atlas的集群连接参数,你没指定备份数据的路径,它就彻底懵了,不知道该从哪读取数据,自然报错。
具体解决方案
第一步:先确认你的备份路径
先把你的dump文件夹位置搞清楚,比如你提到的C:\Program Files\MongoDB\Server\4.2\bin\dump\gfg,这里gfg是你要恢复的目标数据库名对吧?
第二步:修正mongorestore命令
你必须在命令的最后加上备份数据的路径,而且Windows下路径带空格的话,一定要用双引号括起来!
示例1:恢复整个dump文件夹的所有数据
mongorestore --host Cluster0-shard-0/cluster0-shard-00-00-qwo7v.mongodb.net:27017,cluster0-shard-00-01-qwo7v.mongodb.net:27017,cluster0-shard-00-02-qwo7v.mongodb.net:27017 --ssl --username username --password 你的真实密码 --authenticationDatabase admin "C:\Program Files\MongoDB\Server\4.2\bin\dump"
示例2:只恢复gfg单个数据库
mongorestore --host Cluster0-shard-0/cluster0-shard-00-00-qwo7v.mongodb.net:27017,cluster0-shard-00-01-qwo7v.mongodb.net:27017,cluster0-shard-00-02-qwo7v.mongodb.net:27017 --ssl --username username --password 你的真实密码 --authenticationDatabase admin "C:\Program Files\MongoDB\Server\4.2\bin\dump\gfg"
更稳妥的操作方式
先切换到MongoDB的bin目录(也就是mongorestore所在的文件夹),再执行命令,这样可以用相对路径,减少路径错误的概率:
cd "C:\Program Files\MongoDB\Server\4.2\bin" mongorestore --host Cluster0-shard-0/cluster0-shard-00-00-qwo7v.mongodb.net:27017,cluster0-shard-00-01-qwo7v.mongodb.net:27017,cluster0-shard-00-02-qwo7v.mongodb.net:27017 --ssl --username username --password 你的真实密码 --authenticationDatabase admin ./dump/gfg
额外注意事项
- 记得把命令里的
<PASSWORD>替换成你Atlas账号的真实密码,别留着尖括号! - 提前确认你的Atlas集群白名单已经添加了当前电脑的IP,不然恢复到一半可能会出现连接失败的问题。
内容的提问来源于stack exchange,提问作者Syed Talha Ali
相关产品推荐
相关产品推荐

