2015-08-13 9 views
14

Wenn ich ein Backup aller Datenbanken in MongoDB (Version 3) zu erstellen:Backup-Mongodump kann nicht mit --db erstellt werden. Authentifizierung fehlgeschlagen

mongodump --username bacUser --password 12345 

Es ist OK. Aber wenn ich versuche Sicherung eines ausgewählten db zu erstellen:

mongodump --username bacUser --password 12345 --db test 

Es gibt mir diese Fehlermeldung:

Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed.

Antwort

36

Arbeit mit diesem:

--authenticationDatabase admin 
+8

Können Sie eine Erklärung hinzufügen, warum dies eine Lösung? –

+4

mongodump- und mongorestore-Befehle benötigen den Namen der Datenbank, in der die Anmeldeinformationen des mongodb-Benutzers gespeichert sind. –

+0

Normalerweise sind die Anmeldeinformationen in der gleichen Datenbank gespeichert, die ich sichern/wiederherstellen möchte, liege ich falsch? – alfredopacino

1

für dump und restore

mongodump --db nameDatabase --username userName --password password --authenticationDatabase admin --out mongodb\ 
mongorestore --db nameDatabase --username userName --password password --authenticationDatabase admin <path backup> --drop 
+1

Hallo, willkommen bei SO. Diese Antwort wäre klarer, wenn Sie eine kleine Erklärung/Kommentar hinzugefügt hätten. Vielen Dank! –

12

Dies sollte funktionieren.

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD 

Auch dieser Fehler kann auftreten, wenn Benutzername oder Passwort falsch sind.

+0

Das hat perfekt funktioniert –

3

Wenn Sie immer noch denselben Fehler mit --authenticationDatabase admin erhalten, dann sind wahrscheinlich Ihr Benutzername und Ihr Passwort falsch. versucht, einen Benutzer db.createUser(), mit entsprechender Rolle Zugabe von (i gab auch Schreibrechte)

als unter Befehl ausführen: (ignorieren -h, wenn Sie auf dem lokalen laufen)

mongodump -h <ip>:<port_number> -d db_name -u newUser -p newPassword -o /home/mongodump/ 

Hoffnung dies hilft ...

+0

mlabs hat ein Online-Programm, um neue Benutzer zu erstellen. Der neue Benutzer hat für mich gearbeitet. – jsky

3
mongodump --collection coll_name --db DBname -u UName -p *** 
      --authenticationDatabase <admin/privileged> --host ip 
      --port portNo --out foldName 
1

die folgenden Schritte für mich auf MongoDB 3.2 gearbeitet:

  1. Prüfung der cour se, wenn Ihr Admin-Benutzername und PW richtig sind. Sie können dies mit dem Mongo Mantel:

Mongo

Verwendung Admin db.auth ("admin", "IhrKennwort")

Wenn diese 1 zurückgibt, ist das Passwort korrekt.

  1. Fügen Sie Ihrem Administrator dann die Rolle "backup" hinzu (oder stellen Sie sicher, dass diese Rolle bereits hinzugefügt wurde). db.grantRolesToUser ("admin", [{role: "backup", db: "admin"}])

  2. Endlich der Befehl mongodump. Es hat nicht funktioniert, als ich versuchte, das Passwort als Argument zu übergeben. Statt dies tun:

mongodump --username Admin --authenticationDatabase Admin --db yourmongodatabase

dann Ihr Passwort hinzufügen, wenn es für sie promts.

Dies funktioniert für mich ...

+0

Es ist wichtig, dass der Benutzer eine geeignete Rolle hat: Backup oder Root –

0

Verwenden signle Quotation um Passwort.wenn Sie ein Sonderzeichen in Ihrem Passwort verwenden. Das wird dein Problem lösen. Verwenden Sie den folgenden Befehl.

mongodump -d Datenbank -u Benutzername -p ‚Passwort‘ --out directory_name

Verwandte Themen