我正在尝试在mongo中运行分片。我跑了这个命令:
mongod --rest --shardsvr --port 10000 --dbpath data/localhost10000 --logpath data/localhost10000/log
mongod --rest --port 10002 --dbpath data/localhost10002 --logpath data/localhost10002/log
mongos --port 10003 --configdb localhost:10002 > run_routing_service_log
mongo localhost:10003
use admin
db.runCommand({addshard:"localhost:10000", name:"shard10000"});
db.runCommand({addshard:"localhost:10001", name:"shard10001"});
use test_sharding
sh.enableSharding("test_sharding")
db.people.ensureIndex({"zip": 1})
db.people.insert({"name": "a1", "password": "a1", .... )
sh.status()
我收到此错误:
惊讶地发现localhost:10002不相信它是配置服务器
答案 0 :(得分:0)
在第二个mongod命令中添加--configsvr参数,如下所示。
mongod --rest --port 10002 --dbpath data/localhost10002 --logpath data/localhost10002/log
这应该在端口#10002上启动配置服务器。但是,您可能会面临与仲裁相关的另一个问题,因为mongodb官方文档推荐使用3个配置服务器,可以在不同端口上以上述命令启动。
另外,我没有看到你已经初始化了mongodb碎片。这也可能在识别正确的分片配置时产生问题。以下链接可能会有所帮助。
http://www.mongodbspain.com/en/2015/01/26/how-to-set-up-a-mongodb-sharded-cluster/