как я могу подключиться к удаленному серверу mongo с терминала Mac OS

Я хотел бы зайти в оболочку mongo в терминале на моем MacBook. Однако меня интересует подключение к экземпляру Mongo, работающему в облаке (экземпляр compose.io через надстройку Heroku). У меня есть имя, пароль, хост, порт и имя базы данных из URI MongoDB:

mongodb://username:[email protected]:10011/my_database

Я установил mongodb на свой MacBook с помощью Homebrew не потому, что хочу, чтобы Mongo работал на моем Mac, а просто для того, чтобы получить доступ к программе оболочки mongo для подключения к этой удаленной базе данных.

Однако я не могу найти нужную команду, чтобы получить полный доступ к оболочке, который мне нужен. Использование приведенных здесь инструкций http://docs.mongodb.org/manual/reference/program/mongo/ (выполните поиск по запросу «удаленный») Я могу получить то, что выглядит как соединение, но без указания имени пользователя или пароля я не полностью подключен. Запуск db.auth(username, password) возвращает 1 (в отличие от «auth fails», когда я указываю неправильное имя пользователя и пароль), но я продолжаю получать сообщение об ошибке «unauthorized» при выполнении команды show dbs.


person jononomo    schedule 08.11.2014    source источник


Ответы (3)


Вы, вероятно, подключаетесь нормально, но у вас недостаточно прав для запуска show dbs.

Вам не нужно запускать db.auth, если вы передаете аутентификацию в командной строке:

mongo somewhere.mongolayer.com:10011/my_database -u username -p password

После подключения вы сможете видеть коллекции?

> show collections

Если это так, все в порядке, и у вас просто нет прав администратора для доступа к базе данных, и вы не можете запустить show dbs

person Ben    schedule 08.11.2014
comment
Я могу подключиться, используя описанную вами технику. Однако я не могу запускать какие-либо команды, такие как показывать коллекции или показывать пользователей. Я очень хочу получить сообщение о том, что запрос не авторизован для ошибки my_db.system.namespaces. - person jononomo; 10.11.2014
comment
Итак, heroku произвольно назвал мою базу данных mongo другим именем, отличным от того, которое я использовал в dev. Я думаю, что это была моя проблема. - person jononomo; 10.11.2014
comment
Но если в конце у меня будет? AuthSource = admin. Не работает. --authenticationDatabase не помогает. - person Roman Kazanovskyi; 14.04.2016
comment
Хотя 27017 - порт по умолчанию. на всякий случай порт примера не работает. docs.mongodb.com/manual/reference/default-mongodb-port - person change; 28.08.2017

С Mongo 3.2 и выше просто используйте строку подключения как есть:

mongo mongodb://username:[email protected]:10011/my_database
person Amio.io    schedule 23.07.2016

Другой способ сделать это:

mongo mongodb://mongoDbIPorDomain:port
person KayV    schedule 15.04.2020