2015-03-19 1 views
1

Я получаю эту ошибку при попытке создать пользователя admin на новом MongoDB 2.6.8 install. Моя машина работает Ubuntu 14.04.MongoDB db.createUser() ошибка версии схемы

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

Error: couldn't add user: User and role management commands require auth data to have schema version 3 but found 5 at src/mongo/shell/db.js:1054

Я был MongoDB 3.0.1 установлен раньше, я удалил его, потому что он не совместим с некоторыми другими программами я использую. Я выполнил sudo apt-get purge на MongoDB, чтобы удалить все файлы конфигурации перед установкой 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 
} 

Можете ли вы мне помочь? Почему это происходит?

+0

Что произойдет, если вы попытаетесь запустить [** 'authSchemaUpgrade' **] (http://docs.mongodb.org/manual/release-notes/2.6-upgrade-authorization/#upgrade-authorization- schema) command 'db.getSiblingDB (« admin »). runCommand ({authSchemaUpgrade: 1})'? – chridam

+1

У меня такая же ошибка. – gummiost

+0

В документах упоминается, что _ В случае ошибки вы можете безопасно перезапустить команду authSchemaUpgrade. – chridam

ответ

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