我们已经使用服务器的本地IP配置了MongoDB副本集。
config = {_id: 'Prod', members: [ {_id: 0, host: '10.10.194.22:27017'}, {_id: 1, host: '10.10.194.23:27017'}, {_id: 2, host: '10.10.194.24:27017'}, {_id: 3, host: '10.10.194.25:27017', arbiterOnly: true}] };
它对我来说工作得非常好。当我们试图从Eclips中填充数据时,问题就开始了。
我们使用公网IP连接DB,我们已经使用Mongo-Explorer测试了连接。
在填充数据时,它试图连接到服务器的本地IP &这会抛出错误"connection timed out“。
-Tarak
发布于 2013-06-19 11:37:32
如果您作为单个节点连接到MongoDB,则客户端驱动程序将使用您指定的地址进行连接。
但是,如果您作为副本集连接到MongoDB,客户端驱动程序将向服务器请求副本集配置,然后在配置中使用主机名或IP地址。如果无法使用这些主机名或IP地址从客户端访问数据库服务器节点,则无法正常工作。
如果您使用的是Java,不同之处在于您为Mongo对象使用了哪个构造函数。如果您使用其中一个列表构造器,即使列表中只有一个对象,它也会作为副本集连接,因此它不适用于您。其他驱动程序也有类似的机制,但您没有提到您正在使用哪个驱动程序。
但是,如果您连接到副本集的一个节点作为单个节点,这应该可以工作。我不会说它是推荐的,但它应该是有效的。
https://stackoverflow.com/questions/17176189
复制相似问题