Mongodb 集群启动带安全认证,adduser时报错

    在use admin 后。添加用户 db.addUser("admin","123456")时 由于其他节点还没有admin用户,并且还是用-keyFile参数,需要权限认证。造成第一次无法,创建用户。

    现象如下

    switched to db admin
    {
    "user" : "admin",
    "readOnly" : false,
    "pwd" : "dfb2b4f665d248c6887cfba7b1f0c9fc",
    "_id" : ObjectId("50b41bb41e7bf4084c43a793")
    }
    Tue Nov 27 09:47:32 uncaught exception: couldn't add user: SyncClusterConnection::insert prepare failed: 10.200.7.106:10021:{ errmsg: "need to login", ok: 0.0 } 10.200.7.221:10021:{ errmsg: "need to login", ok: 0.0 } 10.200.7.226:10021:{ errmsg: "need to login", ok: 0.0 }

     

    解决办法。第一次启动时不要加-keyFile参数。启动后首先创建admin用户。然后停止所有节点。

    添加-keyFile参数。再启动集群。便可。

    ./bin/mongod -shardsvr -replSet shard1 -port 10020 -dbpath data/shard1a -keyFile /data/support/mongodb-2.2.1/mongokey -oplogSize 100 -logpath logs/shard1a.log -logappend -fork -rest  --nojournal