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