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.

2 22

2 ответа:

Аутентификация в оболочке, выполняемая в вашем примере, направлена против базы данныхadmin . Командная строка, опубликованная выше, не указывает базу данных и поэтому аутентифицируется по базе данных по умолчанию, которая является test. Попробуйте вместо этого выполнить аутентификацию через командную строку в БД администратора:

mongo admin -u 'USERNAME' -p 'PASSWORD'

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

mongo your_host_name:your_port/admin -u 'USERNAME' -p 'PASSWORD'

Возможно, теперь все по-другому из-за обновления, так как на этот вопрос изначально был дан ответ, но аутентификация проходит успешно только при обертывании имени пользователя/пароля в двойные кавычки. например,

mongo admin -u "myName" -p "myPassword"