我正在尝试用mongo创建和填充一系列分片。但是我一直收到以下错误:
错误:未连接到mongos。
我有' mongod'在后台运行。这与mongod不同吗?我曾尝试过运行“mongos'在cmd行但这也给了我一个错误。
如何摆脱此错误?
谢谢
答案 0 :(得分:1)
看起来好像你的集群没有运行所需的所有组件,所以你确实需要(除其他事项外)至少运行1个mongos实例。
我想(因为没有关于你在启动mongos时收到的错误的详细信息)你无法运行mongos守护进程的原因是因为它被配置为在与mongod相同的端口上运行。因此,如果您尝试在一台计算机上运行所有组件,则需要为每个组件设置不同的端口号。
mongod
是运行MongoDB实例(数据存储)的守护进程,mongos
是群集的路由器服务。
您将需要:
mongod
实例(数据实际分类的位置)mongod
服务器运行的3 config
个实例(其中分片包含哪个数据范围的元数据(基于您的分片键)mongos
实例 - 决定(根据配置服务器的信息)需要查询哪些分片&然后处理排序和在返回查询结果之前合并结果。此外,您的mongos
服务器是您实际从客户端连接到的终端。当您运行所有组件后,您需要连接到其中一个mongos
个实例,以便初始化分片,管理&查询它背后的数据。
在独立或副本集配置中,您连接到其中一个mongod
实例以进行查询,管理等。在Sharded群集中,您连接到mongos
之一而是管理您的查询的路由。
这个教程非常好&我第一次玩Sharded cluster时帮了我一堆
https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/