如何使用mongodb进行备份

时间:2018-03-06 13:34:08

标签: mongodb

当我想要备份时,我会面对这个命令

mongodump -d databasename -u admin -p -o / home

I encounter an error Errmsg: "auth faild",code:18}

但是通过这个用户和传递我可以连接到数据库 但我希望断开身份验证 我会得到备份

由于

1 个答案:

答案 0 :(得分:0)

此消息表示mongodump无法对mongod进行身份验证。有几个可能的原因。查看the docs,我们可以看到有关-p选项的以下说明。

  

在3.0.0版中更改:如果没有为其指定参数   --password,mongodump返回错误。

     

在版本3.0.2中更改:如果您希望mongodump提示用户   密码,传递--username选项而不使用--password或指定   一个空字符串作为--password值,如--password“”。

在您提供的示例命令中,只有-p表示它需要密码。

此外,缺少--authenticationDatabase选项。查看mongodump的文档:

  

指定创建用户的数据库。看到   认证数据库。

     

如果未指定身份验证数据库,则mongodump假定   指定要导出的数据库保存用户的凭据。

     

如果未指定身份验证数据库或数据库   export,mongodump假设admin数据库保存用户   凭证。

由于指定了-d参数,mongodump将尝试对该数据库进行身份验证。用户更有可能存在于admin数据库中。

考虑到所有这些因素,请尝试以下命令:

mongodump -d <databasename> -u <user> --authenticationDatabase admin -o /home

此命令将通过stdin提示您输入密码。如果要在命令行上指定密码,则命令将更改为

mongodump -d <databasename> -u <user> --authenticationDatabase admin -p <password> -o /home

请将<databasename><user><password>替换为适合您环境的值。