我用身份验证设置了副本集.我用了this英镑.我设置了keyfile、admin用户和其他用户.一切正常——匿名访问被禁用,我可以登录

$ 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

使用相同的凭证.我在文档或这里没有找到任何有用的东西.

推荐答案

在您的示例中执行的壳内身份验证是针对admin数据库的.上面发布的命令行没有指定数据库,因此正在对默认数据库test进行身份验证.请try 通过命令行对admin db进行身份验证:

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

如果服务器不在本地主机上,则可以使用:

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

Mongodb相关问答推荐

如何在MongoDB中通过限制和跳过查找项进行匹配

MongoDB聚合如何对对象数组中的值求和

在mongdob中按子文档筛选不起作用

Golang中的Mongo中值运算

MongoDB 聚合 $match 阶段与条件查询

Mongoose updateMany 以及 Where 和 orWhere?

Mongo:查找具有 0 个关联文档的文档,成本更低

MongoDB 更新:如果新值不同,则将旧字段值推送到另一个数组字段

嵌套数组 $unwind 和 $group 在 mongoDB 中重新组合在一起

MongoDB - 文档中多个数组大小的总和

如何在 Mongoose 中定义一个通用的嵌套对象

如何在 Mongo 聚合中合并文档中的数组字段

如何使用 Node.js 和 mongoose 解决command find requires authentication?

为 php 5.6 (XAMPP) 添加 mongodb 扩展

在 mongodb 的一次更新调用中推送到两个单独的数组

在 MongoDB 上使用 $push 更新数组时避免重复值

MongoDB:查询和检索嵌入式数组中的对象?

通过 Java 执行 Mongo like Query (JSON)

多次使用位置 `$` 运算符来更新嵌套数组

何时使用Singleton单例、Transient和使用 Ninject 和 MongoDB 的请求