mongo addShard“找不到常见协议”errmsg 126

时间:2016-04-23 16:25:56

标签: mongodb docker virtual-machine sharding

我正在尝试学习一些MongoDB,并希望安装两个分片数据库,以便在这两个“节点”之间分配我的数据,并利用其效率和稳健性。

我也在Docker工作。所以在docker中我用它们各自的IP创建了4个虚拟机:

  • mongo1(172.17.0.6):第一个用作分片的数据库
  • mongo2(172.17.0.5):用作分片的第二个数据库
  • mongocfg(172.17.0.4):整个系统的配置图像
  • mongorouter(172.17.0.3):访问其他两个分片的路由器;整个数据库

如果您不熟悉docker,只需将其视为VirtualBox管理器,它可以帮助在相同的环境和操作系统下运行多个虚拟映像。例如,只要认为那里的每个IP只有不同的计算机。

问题是,要添加一个新的分片,我已经读过我需要连接到mongorouter,然后通过它们的IP和端口添加两个分片。在docker中,我执行$ docker exec -it mongorouter mongo,mongo控制台显示为

mongos>

然后我输入并准确地获取:

mongos> sh.addShard("172.17.0.6:27017") { "ok" : 0, "errmsg" : "No common protocol found.", "code" : 126 }

我试图看看这意味着什么并且没有任何线索。这不仅仅是我自己认为的简单的谷歌搜索。当然,此后不会添加分片。在一个严重的镜头中,我已经尝试了所有IP,即使所有这些IP都使用了网关172.17.0.2

我可以在正确的文档中使用一些建议,比如在哪里可以找到错误代码126或者什么协议是errmsg引用或任何东西。

提前致谢。

EDIT。

我没有找到解决方案。问题是因为我使用了错误的Dockerfile来构建VM。如果有人有兴趣,区别在于错误的Docker文件有FROM ubuntu:latest而正确的文件有FROM mongo。如果有人带着同样的问题来到这里,那就是我能指出你的更好的方向。

0 个答案:

没有答案