2014-11-08 4 views
67

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

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

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

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

ответ

123

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

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

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

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

> show collections 

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

+0

Я могу подключиться, используя технику, которую вы описываете. Однако я не могу запускать какие-либо команды, такие как «показать коллекции» или «показывать пользователям». Я просил получить сообщение «не авторизовано для запроса на my_db.system.namespaces». – jononomo

+1

Итак, геройку случайным образом назвали мою базу данных mongo другим именем от того, которое я использовал в dev. Я думаю, это было в основном моей проблемой. – jononomo

+0

Но если у меня есть? AuthSource = admin в конце. Это не работает. --authenticationDatabase не помогает. – RomKazanova

30

С Монго 3.2 and higher просто использовать строку подключения как:

mongo mongodb://username:[email protected]:10011/my_database 
+3

Обратите внимание, что для этого вам требуется оболочка mongo v3.2 или новее. См. Https://jira.mongodb.org/browse/SERVER-6233 –

Смежные вопросы