首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在addShard中使用MongoDB

无法在addShard中使用MongoDB
EN

Stack Overflow用户
提问于 2016-11-09 08:03:25
回答 1查看 2.2K关注 0票数 0

我正在尝试部署mongodb切分。我在三台机器上部署了一套复制品。然而,当我尝试对所有三个节点进行sh.addShard("test/mongodb1.example.net:27017")时,我仍然无法使它工作。显示的错误是:

代码语言:javascript
复制
2016-11-09T16:02:46.704+0800 W NETWORK  [conn105] No primary detected for set team3

另一个错误:

代码语言:javascript
复制
{
  "ok" : 0,
  "errmsg" : "could not find host matching read preference { mode: \"primary\" } for set test",
  "code" : 133
}

1)为每个节点设置初始副本集(这很好)

( a)为所有3个节点运行以下命令:

代码语言:javascript
复制
mkdir /temp/data/team3
./mongod --replSet "team3" --dbpath /temp/data/team3
./mongo --host <mongodb[x].example.net>  

( b)主节点运行:

代码语言:javascript
复制
rs.initiate()
rs.add("mongodb2.example.net")
rs.add("mongodb3.example.net")

2)为三个副本集群设置配置服务器和查询路由器(工作正常)

主节点运行:

代码语言:javascript
复制
mkdir /temp/data/config_rs
./mongod --configsvr --replSet "config_rs" --dbpath /temp/data/config_rs
./mongo --host mongodb1.example.net --port 27019

3)添加碎片(添加碎片的问题)

主节点运行:

代码语言:javascript
复制
sh.addShard("mongodb1.example.net")
sh.addShard("mongodb2.example.net")
sh.addShard("mongodb3.example.net")
EN

回答 1

Stack Overflow用户

发布于 2016-11-18 09:08:28

抱歉迟了回答..。问题是,您必须通过sh.addShard服务提供这些mongoS命令。因此,您不使用mongo命令连接主服务器,您必须使用连接到mongos服务。

所以,首先,你必须启动某台机器的mongos,f.ex。一个(或全部)配置服务器是很好的候选服务器。

Mongos文档

分步分片

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40502307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档