Ошибка аутентификации командной строки MongoDB 2.6.1
Я установил набор реплик с аутентификацией. Я использовал этот учебник. Я установил ключевой файл, администратор и другие пользователи. Все работает отлично - анонимный доступ отключен, и я могу войти в систему
$ mongo
MongoDB shell version: 2.6.1
connecting to: test
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
rs0:PRIMARY> use admin
switched to db admin
rs0:PRIMARY> db.auth("USERNAME","PASSWORD")
1
rs0:PRIMARY>
используя учетные данные пользователей, которые я создал.
Но я не могу войти в командную строку
$ mongo -u 'USERNAME' -p 'PASSWORD'
MongoDB shell version: 2.6.1
connecting to: test
2014-05-18T14:23:47.324+0200 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed
используя те же учетные данные. Я не нашел ничего полезного в документации или здесь, на SO.
Ответы
Ответ 1
Аутентификация внутри вашей оболочки, выполненная в вашем примере, относится к базе данных admin. В приведенной выше командной строке не указывается база данных и поэтому аутентифицируется по умолчанию, которая является тестом. Попробуйте вместо этого выполнить аутентификацию через командную строку против admin db:
mongo admin -u 'USERNAME' -p 'PASSWORD'
если сервер не находится на локальном хосте, вы можете использовать это:
mongo your_host_name:your_port/admin -u 'USERNAME' -p 'PASSWORD'
Ответ 2
Возможно, теперь это отличается от обновления, поскольку на этот вопрос был дан ответ, но аутентификация удалась только при переносе имени пользователя/пароля в двойные кавычки.
например.
mongo admin -u "myName" -p "myPassword"