【问题标题】:MongoDB db.createUser() schema version errorMongoDB db.createUser() 架构版本错误
【发布时间】:2015-05-22 15:14:21
【问题描述】:

尝试在全新 MongoDB 2.6.8 安装上创建管理员用户时出现此错误。我的机器运行的是 Ubuntu 14.04。

MongoDB shell version: 2.6.8
connecting to: test
> use admin
switched to db admin

> db.createUser(
  {
    user: "user",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

错误:无法添加用户:用户和角色管理命令需要 身份验证数据具有架构版本 3,但在 src/mongo/shell/db.js:1054

我之前安装了 MongoDB 3.0.1,我删除了它,因为它与我使用的其他一些软件不兼容。在安装 2.6.8 之前,我在 MongoDB 上执行了sudo apt-get purge 以删除所有配置文件。

这个我试过了,但是好像需要降级功能:

> db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 3 })
{
    "ok" : 0,
    "errmsg" : "Do not know how to upgrade auth schema from version 5",
    "code" : 69
}

你能帮帮我吗?为什么会这样?

【问题讨论】:

  • 如果您尝试运行authSchemaUpgrade 命令db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 }) 会发生什么?
  • 我得到同样的错误。
  • 文档提到 如果出现错误,您可以安全地重新运行 authSchemaUpgrade 命令。

标签: mongodb


【解决方案1】:

我通过清除 MongoDB 使其工作:

sudo apt-get purge mongodb-org mongodb-org-*

然后删除该文件夹内的内容,这包含所有数据库:

sudo rm -fr /var/lib/mongodb/

之后我再次安装了 2.6.8 并且能够添加新用户。因此,purge 似乎并未删除降级所需的所有文件。

MongoDB shell version: 2.6.8
connecting to: test
> use admin
switched to db admin
> db.createUser(
   {
     user: "user",
     pwd: "password",
     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
   }
 )
Successfully added user: {
    "user" : "user",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

【讨论】:

    猜你喜欢
    • 2019-11-07
    • 2016-06-19
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 2016-07-19
    相关资源
    最近更新 更多