Подтвердить что ты не робот

Аутентификация командной строки mongo не выполняется

Я запускаю mongo 2.2.2 на osx.

Когда я выполняю следующую аутентификацию, все прекрасно:

$ mongo
>> use admin
>> db.auth("uname", "password")

Журнал:

Thu Mar  7 13:51:08 [initandlisten] connection accepted from 127.0.0.1:63474 #10 (4 connections now open)
Thu Mar  7 13:51:08 [conn10]  authenticate db: admin { authenticate: 1, nonce: "123", user: "uname", key: "456" }

Однако, когда я пытаюсь выполнить аутентификацию непосредственно из командной строки:

$ mongo admin -u uname -p password

Я получаю следующую ошибку:

Thu Mar  7 14:25:52 [initandlisten] connection accepted from 127.0.0.1:63939 #12 (5 connections now open)
Thu Mar  7 14:25:52 [conn12]  authenticate db: admin { authenticate: 1, nonce: "789", user: "uname", key: "147" }
Thu Mar  7 14:25:52 [conn12] auth: key mismatch uname, ns:admin
Thu Mar  7 14:25:52 [conn12] end connection 127.0.0.1:63939 (4 connections now open)

Кто-нибудь знает, что вызывает это?

4b9b3361

Ответ 1

Пароль, содержащий специальные символы, особенно знак доллара, должен быть помещен в одинарные кавычки, чтобы защитить их от командной оболочки:

$ mongo admin -u uname -p 'password'

Ответ 2

Вы должны указать --authenticationDatabase, чтобы указать mongodb, где найти созданного вами пользователя. Например:

mongo admin -u uname -p 'password' --authenticationDatabase admin