当我想要备份时,我面对这个命令
mongodump -d databasename -u admin -p -o / home
I encounter an error Errmsg: "auth faild",code:18}
但是有了这个用户并通过我可以连接到数据库但是我希望断开身份验证我将获得备份
谢谢
此消息表明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>
替换为适合您环境的值。