Reputation: 2257
When I create backup of all databases in MongoDB (version 3):
mongodump --username bacUser --password 12345
It's OK. But when I try to create backup of a selected db:
mongodump --username bacUser --password 12345 --db test
It gives me this error:
Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed.
Upvotes: 81
Views: 94668
Reputation: 2776
If you use the --uri
option, you need to add authSource=admin
as a parameter to your connection string (assuming your user is on the admin database)
mongodump --uri="mongodb://user:pass@host1:27017,host2:27017,host3:27017/?replicaSet=rs0"
Becomes:
mongodump --db=test --uri="mongodb://user:pass@host1:27017,host2:27017,host3:27017/?replicaSet=rs0&authSource=admin"
Upvotes: 2
Reputation: 2790
mongodump --authenticationDatabase admin -uroot -pyourpassword
here root is username and yourpassword is your password.
This command will backup/dump all database back-up in current directory.
Upvotes: 7
Reputation: 9247
userAdminAnyDatabase is not enough to do mongodump on all the dbs that's why you are getting this error. You will need a super user that has:
userAdminAnyDatabase
readWriteAnyDatabase
clusterAdmin
privileges to run mongodump on all dbs.
OR you just need 'backup' privilege
db.grantRolesToUser('username', [{
role: 'backup',
db: 'name of ur authentication db'
}])
Upvotes: 2
Reputation: 757
mongodump --host <host-ip> --port 27017 --db <database> --authenticationDatabase admin --username <username> --password <password> --out ./Documents/
After all the trail, I found above working command to dump from mongdb.
Upvotes: 21
Reputation: 31
In my case, mongodump
was not correctly processing the password. The solution was to escape the password literal.
This did not work:
mongodump -p my$password -o <output directory>
This did work:
mongodump -p 'my$password' -o <output directory>
Upvotes: 3
Reputation: 1375
If you are using mLab then it could be the version in your local mongo is not match with mLab. By default, Ubuntu will install mongo v2.x
and mLab is v3.x
. You could check with this command:
mongo --version
Install new mongo version:
sudo apt remove mongo-clients mongodb
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927
Create a list file for MongoDB.
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get install -y mongodb-org
Ref: https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/
Now you can dump your database with this command:
mongodump -h <host>:<port> -d <database-name> -u <user> -p <password> -o <output directory>
Upvotes: -1
Reputation: 2257
work with this:
--authenticationDatabase admin
mongodump and mongorestore commands need the name of database where mongodb user's credentials are stored. (thanks @Zubair Alam)
Upvotes: 143
Reputation: 10247
I was having this same problem when trying to dump my database info from mLab.
It was happening because I had mongo 2.x
locally and 3.x
in mLab.
Upgrading my local mongo to the same major version as mLab allowed me to do the dump, thus solving the problem.
Upvotes: 0
Reputation: 361
Use signle Quotation around password. if you are using any special character in your password. That will solve your issue. Use following command.
mongodump -d database_name -u userName -p 'password' --out directory_name
Upvotes: 2
Reputation: 71
mongodump --collection coll_name --db DBname -u UName -p ***
--authenticationDatabase <admin/privileged> --host ip
--port portNo --out foldName
Upvotes: 7
Reputation: 499
The following steps worked for me on MongoDB 3.2:
mongo
use admin db.auth("admin", "yourpassword")
If this returns 1, the password is correct.
Then add the role "backup" to your admin (or make sure this role is already added). db.grantRolesToUser("admin", [{ role: "backup", db: "admin" }])
Finally, the mongodump command. It did not work for me when I tried to pass the password as an argument. Instead do this:
mongodump --username admin --authenticationDatabase admin --db yourmongodatabase
Then add your password when it promts for it.
This works for me...
Upvotes: 4
Reputation: 857
If you still get same error with --authenticationDatabase admin , than probably your username and password are incorrect. Try adding a user db.createUser() , with appropriate role ( i gave write permission as well)
than run below command : (ignore -h if you are running on local)
mongodump -h <ip>:<port_number> -d db_name -u newUser -p newPassword -o /home/mongodump/
Hope this helps...
Upvotes: 5
Reputation: 2059
This should work.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
Also this error can popup if username or password are wrong.
Upvotes: 37
Reputation: 51
for dump and restore
mongodump --db nameDatabase --username userName --password password --authenticationDatabase admin --out mongodb\
mongorestore --db nameDatabase --username userName --password password --authenticationDatabase admin <path backup> --drop
Upvotes: 5