从 mongos 连接到 Mongo Config Server 时出现问题

Posted

技术标签:

【中文标题】从 mongos 连接到 Mongo Config Server 时出现问题【英文标题】:Trouble connecting to Mongo Config Server from mongos 【发布时间】:2011-05-08 06:17:42 【问题描述】:

伙计们,

我正在设置一个 MongoDB 集群。问题是当我启动“mongos”时,它无法连接到 Mongod Config Server。如果我从 localhost 使用与 Mongod Config Server 相同的服务器启动“mongos”,它会连接并工作。

localhost-$ mongos --port 30000 --configdb server-02:20000 [Works]

server-01-$ mongos --port 30000 --configdb server-02:20000 [不起作用]

由于我可以从本地主机连接到 mongo 配置服务器并执行查询来启动 mongos,因此配置服务器似乎运行良好。

无法理解是什么阻止了服务器连接到其对等节点之一。当我第一次尝试从 localhost 连接时,我收到操作系统的提示,询问是否应允许进程 'mongos' 接受我单击允许的传入连接。也许如果服务器因为这个权限问题而静默失败,没有办法提示。

我收到错误:

Sun May 8 01:14:46 ./mongos db version v1.8.1, pdfile version 4.5 开始(--help for usage) 5 月 8 日星期日 01:14:46 git 版本:a429cd4f535b2499cc4130b06ff7c26f41c00f04 Sun May 8 01:14:46 build sys info: Linux bs-linux64.10gen.cc 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41 mongos main 中未捕获的异常: 11002 套接字异常 [6] 服务器 [server-02:20000] mongos 连接池错误:无法连接到服务器 server-02:20000


好吧,我确实尝试了全新安装,但问题仍然存在,所以我将我的 mongos 移动到了新安装的另一台服务器上,它似乎可以毫无问题地连接到配置服务器。显然,我尝试运行 mongos 的第一台服务器存在某种套接字争用问题。

【问题讨论】:

【参考方案1】:

在你的 mongodb 数据的所有目录中,你都有一个 mongo.lock 文件。如果此文件不为空,则似乎意味着 mongodb 可执行文件(配置、分片数据服务器)的一个实例已在运行。 如果不为空,只需删除每个目录中的此文件即可。

【讨论】:

【参考方案2】:

检查您的 bindip 值,该值由您的 mongo 服务使用。取出bindip 标志。效果很好。

【讨论】:

以上是关于从 mongos 连接到 Mongo Config Server 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

无法从节点连接到 docker 中的 mongo 副本集

如何从 Mac OS 终端连接到远程 mongo 服务器

从主机连接到 mongo docker 容器

无法通过 Spark 连接到 Mongo DB

在 Java 中通过 SSH 隧道连接到 Mongo 数据库

尝试从 Spring Boot Docker 容器连接到 mongo Docker 容器时验证 MongoCredential 时出错?