2013-07-12 3 views
1

Я использую Nodejitsu и их упакованную базу данных Mongoab MongoDB. Я выполнил команду jitsu databases get myDB и получил инструкции по подключению через Mongo CLI. Из положить этой команды есть строка, которая говорит следующее:Не удалось запросить mongolab mongodb

help: Connect with the `mongo` cli client: 
help:  
      $ mongo ds039267.mongolab.com:39267/nodejitsu_xxxxxx_nodejitsudb8577296358 -u nodejitsu_xxxxxx -p mypassword 

ПРИМЕЧАНИЕ: Это первый раз, когда я подключение к данному экземпляру через CLI. Я создал имя базы данных только через jitsu databases create…

Я использую версию Mongo Shell 1.8.3. Я подключился к моему экземпляру MongoDB. Я попытался запустить команду: show dbs и я получил:

uncaught exception: listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" } 

Я использую Мангуст и у меня есть модель под названием Post. Я попытался запустить: db.post.find() в CLI, я получил:

error: { "$err" : "not authorized for query on hotel.post", "code" : 16550 } 

Что это значит? Я не уполномочен; Я думал, что я успешно подключился?

Обновлено

Я модернизировал свою Монго оболочку до последней, 2.4.x версии и до сих пор я получаю эту проблему. У кого-нибудь есть опыт работы с nodejitsu & mongolab?

+0

Ну, вы аутентифицируетесь? 'mongo -username example' – ceejayoz

+0

Да, я аутентифицируюсь. Я обновил свой вопрос, и, как вы можете видеть, я подключился к mongo, используя вывод команды 'jitsu databases get myDB' – Mark

+1

Вместо этого вы можете запустить« show collections »? Для команды show dbs требуется привилегия базы данных администратора.Если у вас все еще есть проблемы, пожалуйста, не стесняйтесь обращаться по электронной почте [email protected], чтобы мы могли помочь вам разобраться в этом как можно скорее! – angela

ответ

4

MongoLab создает базы данных, для которых требуется аутентифицированный пользователь. Когда вы подключаетесь к командной оболочке, вам необходимо указать имя пользователя и пароль для команды оболочки. Документы: here.

mongo --username Mark --password something

Вам нужна эта комбинация Имя пользователя/Пароль должен быть настроен в мангуста, а также. Mongoose docs have details о возможных способах этого.

Обратите внимание, что вы используете очень старый корпус. 1.8.3 - это около 4 версий с текущей строки 2.4. *. Это напрямую не связано с вашей проблемой, но это определенно то, что вы должны исправить в будущем.

+1

В большинстве случаев вам следует опустить «-password something», чтобы он подсказывал вам. Если вы укажете пароль, он будет отображаться для других пользователей на сервере в списке процессов, пока вы его используете. – ceejayoz

+0

Удерживайте, другие пользователи имеют доступ к списку процессов с MongoLab? Зачем им это нужно? Разве это не DBaaS? –

+0

Опять же, «большинство случаев», и это хорошая практика, чтобы привыкнуть к тому, чтобы вы случайно не раскрывали свои учетные данные, когда вы в какой-то момент будете SSHed на какой-то общий хост. – ceejayoz

3

Внутри Монго оболочки попытаться еще раз проверить подлинность:

db.auth('yourUsername','yourPassword');

0

Одна из возможных ошибок может быть как я: Использование специальных символов в пароле ломает URI!

Сгенерированный пароль был

X/apm~nq5JaJ,5 

Так ОЧЕВИДНО, то/сломал запрос и я получил:

MongoError: not authorized for query on apm~nq5JaJ.system.indexes 
0

Вы можете попробовать включить в конце вашего URI: ?authMode=scram-sha1

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