我是MongoDB的新手,我很难备份我的本地数据库并在我的服务器上恢复它。我在Mongo的网站上找到了链接:http://www.mongodb.org/display/DOCS/Import+Export+Tools但我仍然遇到了恢复问题。
当我进行备份时,我致电
mongodump --db Gen
然后我看到所有集合都在/bin/dump/Gen
文件夹
我从本地复制粘贴到调用
的同一文件夹中的服务器mongorestore --db Gen --drop --dbpath dump/Gen
但我得到以下内容:
Error : root directory must be a dump of a single database when specifying a db name with --db
答案 0 :(得分:44)
好的,我发现我做错了什么:
我在做
mongorestore --db Gen --drop --dbpath dump/Gen
但没有--dbpath它就可以了!
mongorestore --db Gen --drop dump/Gen
谢谢大家!
答案 1 :(得分:5)
我认为当您尝试移动它时,您的文件夹结构可能会变得混乱。例如,这对我有用:
$ ./mongodump --db Gen
$ ./mongorestore --db Gen --drop dump/Gen/
你能尝试不移动转储目录,还是从/ bin / dump / Gen恢复?
您指定的目录中应包含.bson文件,例如
$ ls /bin/dump/Gen
foo.bson bar.bson baz.bson
答案 2 :(得分:4)
这最终为我工作(mydb
是我的数据库的名称):
mongorestore --drop -db mydb mydbbackup/mydb/
在mongodump
之后:
mongodump -d mydb -o mydbbackup
答案 3 :(得分:3)
对于不希望被错误“烦恼的人”的附加说明“在使用--db指定数据库名称时,根目录必须是单个数据库的转储”
指定--db且不指定--collection(还原整个数据库)时: - 给定路径必须是目录路径 - 目录不得包含除.bson或.json之外的任何其他文件。我花了一段时间才意识到隐藏的.svn文件夹(如果你使用SVN)会搞乱脚本
答案 4 :(得分:1)
它必须是转储目录中的任何其他目录。因此,首先删除目录,然后重新运行命令mongorestore -d db dump/db
答案 5 :(得分:-1)
示例:
./mongorestore -d db -c mycollection dump/db
会引发以下错误
ERROR: ERROR: root directory must be a dump of a single collection
ERROR: when specifying a collection name with --collection
您可以删除-c选项以转发此错误.Beacuse dump / db指定数据库,但不指定集合。