我在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
但是当我尝试使用服务器的公共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 的主要内容。”
答案 0 :(得分:1)
当您连接到副本集时,您应该使用相同的地址(IP地址或主机名),因为节点在副本集配置中相互使用。对于副本集部署,您需要:
实际上,最好 not 使用公共IP地址配置副本集;使用私有IP地址更安全,这有助于确保您的数据库只能从授权位置接收连接。
答案 1 :(得分:0)
这可能是其中一个原因。
您应该将所有3台服务器的公共IP添加到所有3台服务器/etc/mongod.conf中的bind ip值
如果您使用的是AWS,则需要允许所有此IP用于对另一台服务器的入站访问。
答案 2 :(得分:0)
谢谢你的回复, 它需要在rs.config
中使用公共Ips配置副本