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