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回目