犬ターネット

MongoDB 2.6 で db.createUser ( or db.addUser) 実行したら User and role management commands require auth data to have schema version 3 but found 1 のエラー

2014-08-12 mongodb

MongoDB 2.4 → 2.6 にアップデートして cli から db.createUser ( or db.addUser ) したら以下のエラーが出た。

> db.createUser({ user:"mgng", pwd:"password", customData:{}, roles:["readWrite"], writeConcern:{}});
Error: couldn't add user: User and role management commands require auth data to have schema version 3 but found 1 ...

どうやら db.system.users のスキーマ定義が 2.4 と 2.6 で違うぽい。

How to add authentication to mongodb 2.6? - Stack Overflow

で、アップグレードするコマンドが用意されていた。

Upgrade User Authorization Data to 2.6 Format — MongoDB Manual

db.getSiblingDB("admin").runCommand({authSchemaUpgrade: 1 });

これを実行したあとで db.createUser したらユーザ追加できた。

> db.createUser({ user:"mgng", pwd:"password", customData:{}, roles:["readWrite"], writeConcern:{}});
Successfully added user: {
  "user" : "mgng",
  "customData" : {
  },
  "roles" : [
    "readWrite"
  ],
  "writeConcern" : {
  }
}

stackoverflow は大変役にたつ。


夏休み2回目

右足の甲の感覚が戻らない件