无法使用 public 个 IP 地址连接到 MongoDB 个副本集

Unable to connect to MongoDB Replica Set using public IP addresses

我在MongoDB配置了三节点副本集;复制同步。

我能够单独连接到每个服务器,并使用每个服务器的私有 IP 地址,我可以像这样连接到副本集:

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

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

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

我收到错误消息:“未检测到集合 rs0 的主节点”。

这可能是原因之一。

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

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

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

Ensure that network traffic can pass between all members of the set and all clients in the network securely and efficiently.

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

感谢大家的回复, 它需要在 rs.config

中使用 public Ips 配置副本