Mongo Sharded集群中的身份validation

我有一个mongo共享集群和副本集:

ShardA副本集:

A1. 10.77.14.241 A2. 10.77.14.242 AA. 10.77.14.243 Arbiter 

/etc/mongod.conf的一些参数:

 #bind_ip=127.0.0.1 auth=true replSet=ShardB keyFile=/srv/mongodb/mongodb-keyfile 

ShardB副本集:

 B1. 10.77.14.244 B2. 10.77.14.245 BA. 10.77.14.246 Arbiter 

/etc/mongod.conf的一些参数:

 #bind_ip=127.0.0.1 auth=true replSet=ShardB keyFile=/srv/mongodb/mongodb-keyfile 

Config和Mongos服务器:

 C1. 10.77.14.247 C2. 10.77.14.248 C3. 10.77.14.249 

configurationmongod和mongos的所有实例都在/etc/rc.local中启动:

 mongod --configsvr --logpath /var/log/mongodb/mongod.log --keyFile /srv/mongodb/mongodb-keyfile --fork mongos --configdb 10.77.14.247:27019,10.77.14.248:27019,10.77.14.249:27019 --port 40000 --logpath /data/mongos.log --keyFile /srv/mongodb/mongodb-keyfile --fork 

副本设置正常工作。 如果我在主要成员中插入文档,它在副成员上复制

我有以下问题:在任何仲裁,mongodconfiguration,mongos –

 use admin switched to db admin mongos> db.auth({user: 'admin', pwd: '12345678'}) Error: 18 Authentication failed. 0 

因此我不能通过mongos将文档插入数据库。

我必须启用pipe理员数据库的分片吗?

我重读http://docs.mongodb.org/manual/tutorial/enable-authentication-without-bypass/ 🙂

1)我开始了C1,C2,C3:

 mongod --configsvr --logpath /var/log/mongodb/mongod.log --fork mongos --configdb 10.77.14.247:27019,10.77.14.248:27019,10.77.14.249:27019 --port 40000 --logpath /data/mongos.log --fork 

2)我在mongos上创build了一个新用户:

 use admin db.createUser( { user: "admin", pwd: "12345678", roles: [ { role: "clusterManager", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } ) 

3)我重新启动了mongodconfiguration和mongos的实例–keyfile参数:

  mongod --configsvr --logpath /var/log/mongodb/mongod.log --fork --keyFile /srv/mongodb/mongodb-keyfile mongos --configdb 10.77.14.247:27019,10.77.14.248:27019,10.77.14.249:27019 --port 40000 --logpath /data/mongos.log --fork --keyFile /srv/mongodb/mongodb-keyfile 

4)添加碎片是成功的:

 db.auth({user:'admin', pwd: '12345678'}) 1 sh.addShard("ShardA/10.77.14.241:27017,10.77.14.242:27017,10.77.14.243:27017") { "shardAdded" : "ShardA", "ok" : 1 } sh.addShard("ShardB/10.77.14.244:27017,10.77.14.245:27017,10.77.14.246:27017") { "shardAdded" : "ShardB", "ok" : 1 }