Не могу войти в Mongo через шелл - PullRequest
0 голосов
/ 27 июня 2018

Мы работаем на удаленной базе MongoDB через VPN. На моем локальном компьютере работают три клиентских экземпляра: сервер NodeJS, экземпляр сообщества Compass и оболочка mongo (или mongoexport).

Один и тот же URL-адрес формы mongodb://user:pass@ip:port используется во всех трех случаях, и оба Node.js и Compass работают просто отлично. Проблемы начинают нарастать, когда я использую Windows PowerShell и вызываю mongo из нее:

MongoDB shell version v3.6.5
Enter password:
connecting to: mongodb://{ip}:{port}/
MongoDB server version: 3.6.4
2018-06-27T18:02:00.031+0700 E QUERY    [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1608:20
@(auth):6:1
@(auth):1:2
exception: login failed

где ip и port - это заполнители для реальных значений. У нас нет доступа к конфигурации Mongo, так что я могу сделать что-нибудь, чтобы подключиться с помощью оболочки?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Оказалось возможным подключиться, используя явно указанную базу данных аутентификации. Т.е. работают следующие строки:

mongo --host mongodb://user:pass@ip:port/ --authenticationDatabase admin
mongoexport --host mongodb://user:pass@ip:port/ --authenticationDatabase admin --db db --collection collection -o ./file.json
0 голосов
/ 27 июня 2018

Уверен, что вы используете неверную базу данных. После запуска mongo для запуска mongo, вы должны использовать use database_name, а затем вы можете использовать db.auth("username","password") для аутентификации.

EDIT

По умолчанию ваша база данных является администратором, поэтому вы должны включить ее, если вы используете другую базу данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...