Невозможно создать резервный файл mongodump с -db. Ошибка аутентификации

Когда я создаю резервную копию всех баз данных в MongoDB (версия 3):

mongodump --username bacUser --password 12345

Все в порядке. Но когда я пытаюсь создать резервную копию выбранного db:

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

Это дает мне эту ошибку:

Ошибка: ошибка подключения к серверу db: ошибка сервера на этапе проверки подлинности SASL: Ошибка аутентификации.

Ответы

Ответ 1

работать с этим:

--authenticationDatabase admin

Команды mongodump и mongorestore требуют имя базы данных, в которой хранятся учетные данные пользователя mongodb. (спасибо @Zubair Alam)

Ответ 2

Это должно работать.

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

Также эта ошибка может появиться, если имя пользователя или пароль неверны.

Ответ 3

Если вы по-прежнему получаете ту же ошибку с --authenticationDatabase admin, то, вероятно, неправильное имя пользователя и пароль. Попробуйте добавить пользователя db.createUser() с соответствующей ролью (я также дал разрешение на запись)

чем выполнить команду ниже: (игнорировать -h, если вы работаете на локальном компьютере)

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

Надеюсь, что это поможет...

Ответ 4

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

Ответ 5

Следующие шаги работали для меня на MongoDB 3.2:

  • Проверяйте правильность имени пользователя и pw admin. Вы можете сделать это с помощью оболочки mongo:

Монго

использовать admin db.auth( "admin" , "yourpassword" )

Если это возвращает 1, пароль правильный.

  1. Затем добавьте роль "резервное копирование" в ваш администратор (или убедитесь, что эта роль уже добавлена). db.grantRolesToUser( "admin" , [{role: "backup", db: "admin" }])

  2. Наконец, команда mongodump. Это не сработало для меня, когда я пытался передать пароль в качестве аргумента. Вместо этого сделайте следующее:

mongodump - имя пользователя admin --authenticationDatabase admin --db yourmongodatabase

Затем добавьте свой пароль, когда он проголосует за него.

Это работает для меня...

Ответ 6

Используйте Signle Цитата вокруг пароля. если вы используете какой-либо специальный символ в вашем пароле. Это решит вашу проблему. Используйте следующую команду.

mongodump -d имя_базы_данных -u имя_пользователя -p 'пароль' --out имя_каталога

Ответ 7

для сброса и восстановления

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

Ответ 8

У меня возникла такая же проблема при попытке вывести информацию из базы данных из mLab. Это происходило потому, что у меня был монго 2.x локально и 3.x в mLab. Обновление моего локального монго до той же основной версии, что и mLab, позволило мне сделать дамп, решив проблему.

Ответ 9

Если вы используете mLab, то это может быть версия в вашем местном монго не совпадает с mLab. По умолчанию Ubuntu будет установлен Монго v2.x и MLAB является v3.x. Вы можете проверить с помощью этой команды:

mongo --version

Установите новую версию Монго:

  1. Удалите свою старую локальную монго (будьте осторожны, она может удалить всю вашу локальную базу данных)
sudo apt remove mongo-clients mongodb
  1. Импортируйте открытый ключ, используемый системой управления пакетами.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927
  1. Создайте файл списка для MongoDB.

    • Ubuntu 14.04
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
  • Ubuntu 16.04
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
  1. Установите пакеты MongoDB
sudo apt-get install -y mongodb-org

Ссылка: https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/

Теперь вы можете вывести свою базу данных с помощью этой команды:

mongodump -h <host>:<port> -d <database-name> -u <user> -p <password> -o <output directory>