O problema foi resolvido removendo quaisquer símbolos. Parece que, apesar das aspas [simples ou duplas], a senha de entrada seria inválida.
Eu tenho um aplicativo que se conecta a um banco de dados do MongoDB chamado discussões. Eu criei um usuário
shell Mongo:
> use discussions
switched to db discussions
> db.auth("discussions","XXXXXXXXX")
1
> show users
{
"_id" : "discussions.discussions",
"user" : "discussions",
"db" : "discussions",
"roles" : [
{
"role" : "dbOwner",
"db" : "discussions"
}
]
}
Então, isso é para confirmar que eu tenho uma conta no banco de dados e é um dbOwner. De acordo com os documentos, ele possui privilégios READ, WRITE, etc.
O arquivo de configuração tem a propriedade "auth = true" ativada e o serviço foi devolvido desde a alteração, mais de uma vez.
No entanto, o problema é que quando eu tento conectar-me ao banco de dados de fora do shell eu sempre recebo o erro:
mongo discussions -u 'discussions' -p 'XXXXXXXXX'
MongoDB shell version: 2.6.3
connecting to: discussion
2014-08-05T01:00:39.026+0400 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed
Eu já vi perguntas no Stackoverflow sobre isso e todas elas tinham algo a ver com as aspas usadas em torno do nome de usuário e senha ... mas alterar a aspa simples para uma aspa dupla não produziu um resultado melhor.
Talvez eu esteja errado, mas a forma correta é assim:
mongo --port 27017 -u gerente -p 12345678 --authenticationDatabase admin
Você pode ler sobre isso na documentação do mongo: