Lorsque je crée une sauvegarde de toutes les bases de données dans MongoDB (version 3):
mongodump --username bacUser --password 12345
C'est bon. Mais quand j'essaie de créer une sauvegarde d'une base de données sélectionnée:
mongodump --username bacUser --password 12345 --db test
Cela me donne cette erreur:
Failed: erreur de connexion au serveur de base de données: le serveur a renvoyé une erreur à l'étape d'authentification SASL: échec de l'authentification.
travailler avec ceci:
--authenticationDatabase admin
les commandes mongodump et mongorestore ont besoin du nom de la base de données où les informations d'identification de l'utilisateur mongodb sont stockées. (merci @Zubair Alam)
Cela devrait marcher.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
De plus, cette erreur peut apparaître si le nom d'utilisateur ou le mot de passe est incorrect.
Si vous obtenez toujours la même erreur avec --authenticationDatabase admin, votre nom d'utilisateur et votre mot de passe sont probablement incorrects . Essayez d'ajouter un utilisateur db.createUser (), avec le rôle approprié (j'ai également donné l'autorisation d'écriture)
que exécuter en dessous de la commande: (ignore -h si vous utilisez local)
mongodump -h <ip>:<port_number> -d db_name -u newUser -p newPassword -o /home/mongodump/
J'espère que cela t'aides...
mongodump --collection coll_name --db DBname -u UName -p ***
--authenticationDatabase <admin/privileged> --Host ip
--port portNo --out foldName
pour vider et restaurer
mongodump --db nameDatabase --username userName --password password --authenticationDatabase admin --out mongodb\
mongorestore --db nameDatabase --username userName --password password --authenticationDatabase admin <path backup> --drop
Utilisez la citation signalisée autour du mot de passe. si vous utilisez un caractère spécial dans votre mot de passe. Cela résoudra votre problème. Utilisez la commande suivante.
mongodump -d nom_base_données -u nom_utilisateur -p 'mot_passe' --out nom_répertoire
Les étapes suivantes ont fonctionné pour moi sur MongoDB 3.2:
mongo
utilisez admin db.auth ("admin", "votre mot de passe")
Si cela retourne 1, le mot de passe est correct.
Ajoutez ensuite le rôle "backup" à votre administrateur (ou assurez-vous que ce rôle est déjà ajouté) . Db.grantRolesToUser ("admin", [{role: "backup", db: "admin"}])
Enfin, la commande mongodump. Cela n'a pas fonctionné pour moi lorsque j'ai essayé de passer le mot de passe en argument. Au lieu de cela, faites ceci:
mongodump --username admin --authenticationDatabase admin --db yourmongodatabase
Ajoutez ensuite votre mot de passe quand il vous le promet.
Cela fonctionne pour moi ...
J'avais le même problème lorsque j'essayais de transférer les informations de ma base de données de mLab . Cela se passait car j’avais mongo 2.x
localement et 3.x
dans mLab. Mettre à niveau mon mongo local vers la même version majeure que mLab m'a permis d'effectuer le vidage, résolvant ainsi le problème.