无法使用--db创建备份mongodump.验证失败

Vla*_*llo 30 authentication mongodb mongodump

当我在MongoDB(版本3)中创建所有数据库的备份时:

mongodump --username bacUser --password 12345
Run Code Online (Sandbox Code Playgroud)

没关系.但是当我尝试创建所选数据库的备份时:

mongodump --username bacUser --password 12345 --db test
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:

失败:连接到数据库服务器时出错:服务器在SASL身份验证步骤上返回错误:身份验证失败.

Vla*_*llo 64

使用这个:

--authenticationDatabase admin
Run Code Online (Sandbox Code Playgroud)

mongodump和mongorestore命令需要存储mongodb用户凭据的数据库名称.(感谢@Zubair Alam)

  • 您能否解释为何这是一个解决方案? (8认同)
  • mongodump和mongorestore命令需要存储mongodb用户凭据的数据库名称. (4认同)
  • 这个答案对我有用,完整命令如下:`mongodump -u admin -p pwdxxx --authenticationDatabase admin -d mydb -o mydb_backup` (2认同)

Mil*_*tic 18

这应该工作.

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
Run Code Online (Sandbox Code Playgroud)

如果用户名或密码错误,也会弹出此错误.


Gan*_*esh 16

mongodump --host <host-ip> --port 27017 --db <database>  --authenticationDatabase admin --username <username> --password <password> --out ./Documents/
Run Code Online (Sandbox Code Playgroud)

经过所有的跟踪,我发现上面的工作命令可以从 mongdb 转储。


小智 7

mongodump --collection coll_name --db DBname  -u UName -p *** 
          --authenticationDatabase <admin/privileged> --host ip  
          --port portNo  --out foldName
Run Code Online (Sandbox Code Playgroud)


小智 5

用于转储和恢复

mongodump --db nameDatabase --username userName --password password --authenticationDatabase admin --out mongodb\
mongorestore --db nameDatabase --username userName --password password --authenticationDatabase admin <path backup> --drop
Run Code Online (Sandbox Code Playgroud)

  • 您好,欢迎来到SO。如果您添加一些解释/评论,这个答案会更清楚。谢谢你! (2认同)

小智 5

如果您仍然遇到与 --authenticationDatabase admin 相同的错误,则可能您的用户名和密码不正确。尝试添加具有适当角色的用户 db.createUser() (我也授予了写入权限)

比运行以下命令:(如果在本地运行,请忽略 -h)

 mongodump -h <ip>:<port_number> -d db_name -u newUser -p newPassword -o /home/mongodump/
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助...


Jos*_*shi 5

mongodump   --authenticationDatabase admin -uroot -pyourpassword
Run Code Online (Sandbox Code Playgroud)

这里 root 是用户名,而 yourpassword 是你的密码。

此命令将备份/转储当前目录中的所有数据库备份。