mongodb分片找不到与集合的读取首选项{mode:\";primary\";}匹配的主机
在配置mongodb分片集群时 mongodb分片服务器(192.168.88.40)如下所示mongodb分片找不到与集合的读取首选项{mode:\";primary\";}匹配的主机,mongodb,docker,sharding,hostname,Mongodb,Docker,Sharding,Hostname,在配置mongodb分片集群时 mongodb分片服务器(192.168.88.40)如下所示 e4dfd7df86f0 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29039->27018/tcp MongoArb 7b903389f33d mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29029-
e4dfd7df86f0 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29039->27018/tcp MongoArb
7b903389f33d mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29029->27018/tcp Mongors2
3a0b5edf1a89 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29019->27018/tcp Mongors1
492ffbbd155f mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:27019->27017/tcp Mongos1
13bab86d8d14 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29039->27019/tcp Configsvr3
fc1a728e1643 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29029->27019/tcp Configsvr2
ab343b26c650 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29019->27019/tcp Configsvr1
mongodb配置服务器和mongos(都在192.168.88.17中)如下所示
e4dfd7df86f0 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29039->27018/tcp MongoArb
7b903389f33d mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29029->27018/tcp Mongors2
3a0b5edf1a89 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29019->27018/tcp Mongors1
492ffbbd155f mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:27019->27017/tcp Mongos1
13bab86d8d14 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29039->27019/tcp Configsvr3
fc1a728e1643 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29029->27019/tcp Configsvr2
ab343b26c650 mongo:4.2 "docker-entrypoint.s…" 0.0.0.0:29019->27019/tcp Configsvr1
当我尝试添加shardsh.addShard('node1/192.168.88.40:29019192.168.88.40:29029')
尝试
node1
正确(已选中)
op_msg 20007ms
,所以我直接连接了mongos
中的所有容器
mongo—主机192.168.88.40:29019—u test-p test—authenticationDatabase admin
并且成功连接。
node1
是复制。replSetName
,对吗?和sharding.clusterRole
是shardsvr
。注意我写了shardsvr而不是shardsrv@Minsky是,replSetName是node1。我检查了错误,似乎副本集没有启动。rs.initiate
是否在副本集节点的一个成员中运行?这将启动副本集(rs),在一台主机上配置主+辅助+仲裁器是无用的。如果主机192.168.88.40宕机,则集群不可用,仅配置主服务器不会带来任何好处。这同样适用于配置服务器。一台主机上有3个配置服务器是没有意义的。如果您不需要冗余和高可用性,那么只需配置一个配置服务器。注意,即使您的副本集只有一个节点,您也必须启动副本集。您是否也在配置服务器上运行了rs.initiate
?node1
是replication.replSetName
,对吗?和sharding.clusterRole
是shardsvr
。注意我写了shardsvr而不是shardsrv@Minsky是,replSetName是node1。我检查了错误,似乎副本集没有启动。rs.initiate
是否在副本集节点的一个成员中运行?这将启动副本集(rs),在一台主机上配置主+辅助+仲裁器是无用的。如果主机192.168.88.40宕机,则集群不可用,仅配置主服务器不会带来任何好处。这同样适用于配置服务器。一台主机上有3个配置服务器是没有意义的。如果您不需要冗余和高可用性,那么只需配置一个配置服务器。注意,即使您的副本集只有一个节点,您也必须启动副本集。您是否也在配置服务器上运行了rs.initiate
?