我正在尝试在线托管我的数据库,根据我在网上找到的内容,我需要先使用mongodump
导出我的数据库。
如果没有错误,使用mongodump
的方法是:
mongodump -d <db-name> -o <directory>
当我使用上面的命令时,终端中出现以下错误:
Failed: error connecting to db server: no reachable servers
我尝试在--host=127.0.0.1
之后添加mongodump
,如下所示:
mongodump --host=127.0.0.1 -d <db-name> -o <directory>
但我仍然得到相同的结果。我在这里做错了什么?
更新
我设法通过使用以下命令启动MongoDB服务来克服错误:
brew services start mongodb
现在当我运行mongodump
时,它似乎正在工作,但当我导航到它应该位于的目录时我找不到它!
注意:我正在使用Meteor技术,我使用meteor mongo
命令访问我的数据库
答案 0 :(得分:2)
如果您从远程服务器执行mongodump,则可能会发生版本不兼容的情况。这导致在没有任何警告的情况下没有文档被转储。 (至少从我的测试来看,mongodump 2.6.10将无法从mongod转发3.2.13)
另外,请确保bash特殊字符不会破坏您的查询。
示例:
mongodump --db DB_name --collection colname --query "{$or: [something1, something]}"
上一个查询无效,因为您需要使用$
转义\
。
mongodump --db DB_name --collection colname --query "{\$or: [something1, something]}"
答案 1 :(得分:1)
你可以尝试:
从您希望创建输出文件的目录中运行mongodump --db <database> --port 3001
(它将创建包含文件的转储目录)
端口是3001,因为看起来meteor并没有使用Mongodb默认端口
此外,如果没有显示任何内容,请尝试使用verbose mode的-v
标记运行,这将帮助您找出未创建文件的原因。另外,请确保数据库名称正确无误。