MongoDB db.createUser()架构版本错误

时间:2015-03-19 13:21:18

标签: mongodb

尝试在新的 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" } ]
  }
)
  

错误:无法添加用户:用户和角色管理命令需要   auth数据有架构版本3但在5处找到   SRC /蒙戈/壳/ db.js:1054

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

我试过这个,但似乎我需要降级功能:

> db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 3 })
{
    "ok" : 0,
    "errmsg" : "Do not know how to upgrade auth schema from version 5",
    "code" : 69
}
你能帮帮我吗?为什么会这样?

1 个答案:

答案 0 :(得分:2)

我通过清除MongoDB使其工作:

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

然后删除此文件夹中的内容,它包含所有数据库:

sudo rm -fr /var/lib/mongodb/

之后我再次安装 2.6.8 ,我就可以添加新用户了。因此,似乎清除不会删除降级所需的所有文件。

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"
        }
    ]
}