0

我在MongoDB中配置了一个三节点的副本集;复制是同步的。

我能够单独连接到每台服务器,并使用每台服务器的私有 IP 地址连接到副本集,如下所示:

mongo --host rs0/10.XXX:27017,10.XXX:27017,10.XXX:27017 -u root -p abc123 --authenticationDatabase admin

但是当我尝试使用服务器的公共 IP 地址连接到副本集时,如下所示:

mongo --host rs0/52.XXX:27017,52.XXX:27017,52.XXX:27017 -u root -p abc123 --authenticationDatabase admin

我收到一个错误:“没有为 set rs0 检测到主节点”。

4

3 回答 3

2

当您连接到副本集时,您应该使用与副本集配置中节点彼此使用的相同地址(IP 地址或主机名)。对于副本集部署,您需要:

确保网络流量可以安全有效地在集合的所有成员和网络中的所有客户端之间传递。

在实践中,最好不要使用公共 IP 地址配置您的副本集;使用私有 IP 地址更安全,这有助于确保您的数据库只能接收来自授权位置的连接。

于 2017-06-14T15:37:21.470 回答
0

这可能是原因之一。

您应该将所有 3 台服务器的公共 IP 添加到所有 3 台服务器 /etc/mongod.conf 中的绑定 ip 值中

如果您使用的是 AWS,则需要允许所有这些 IP 用于对另一台服务器的入站访问。

于 2017-06-13T12:23:53.303 回答
0

感谢大家的回复,它需要在 rs.config 中配置具有公共 Ips 的副本

于 2017-06-15T17:31:22.257 回答