本阶段在搭建mongodb分布式集群,搭建好了所有节点,添加db.runCommand({addShard:"rs2/192.168.32.131:27019,192.168.32.132:27019,192.168.32.133:27019",name:"s2",maxsize:10240})分片时,一直报MongoDB Could not find host matching read preference { mode: “primary” } for set rs2该错误,错误如下:
我一直在想出现这个问题的原因,有可能IP写错了,有可能执行的副本集名称和实际不符.......对照了文档看有没有遗漏的,我想尽了出现这个问题的所有可能还是没有找到答案,最后我突然想到:有没有可能我根本没有该副本集成员。于是我检查前面的步骤果然是这个问题。于是返回mongo添加副本集成员
我的虚拟机master是主节点
执行以下命令:
./mongo --host master --port 27019
对副本集进行初始化:
rs.initiate()
执行结果:
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "192.168.32.131:27019",
"ok" : 1
}
接着添加其他成员:
rs.add("192.168.32.132:27019")
rs.add("192.168.32.133:27019")
如果运行结果均显示ok:1的话则表示添加成功
其次退出进入mongodb的bin目录下执行以下命令:
./mongo --host master --port 27017
添加rs2:
db.runCommand({addShard:"rs2/192.168.32.131:27019,192.168.32.132:27019,192.168.32.133:27019",name:"s2",maxsize:10240})
运行结果为ok:1添加成功
最后执行命令sh.status()查看状态:
均有rs1和rs2呀!!!问题解决!!!