当前位置: 首页 > 知识库问答 >
问题:

无法使用公共IP地址连接到MongoDB副本集

谷梁云瀚
2023-03-14

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

我可以单独连接到每台服务器,并使用每台服务器的专用IP地址连接到副本集,如下所示:

mongo—主机rs0/10。十、 X.X:27017,10。十、 X.X:27017,10。十、 X.X:27017-u根-p abc123-authenticationDatabase管理员

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

mongo—主机rs0/52。十、 X.X:27017,52。十、 X.X:27017,52。十、 X.X:27017-u根-p abc123-authenticationDatabase管理员

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

共有3个答案

元修然
2023-03-14

谢谢大家的回应,它需要配置副本与公共Ips在rs.config

子车新立
2023-03-14

这可能是原因之一。

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

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

姚星河
2023-03-14

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

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

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

 类似资料:
  • 我可以对我的AWS EC2实例使用SSH ok。Grizzly已经安装并启动。 我无法通过浏览器从本地计算机连接到EC2公共IPhttp://publicip:8080/索引。我有一个安全组,允许传入访问HTTP端口8080,允许所有传出。我还尝试允许ICMP进行ping,但我也无法ping。我删除了所有安全组限制,但这也不起作用。我检查了iptables,没有任何限制规则。 有什么想法吗? 谢谢

  • 问题内容: 如果我在中保留注释,它将像正常一样开始(返回预期结果)。 但是,如果我设置了它,那么它会说OK,但是elasticsearch的状态是。 在这种情况下我做错了什么? 系统:Ubuntu 14.04 LTS 更新:通过将其绑定到进行修复。 问题答案: 更新:通过将其绑定到0.0.0.0进行了修复。

  • 我在EC2(Fedora)上运行了elasticsearch, 我无法使用公共IP或主机名进行外部连接。 ElasticSearch正确启动,我可以使用:curl-XGET在机器上本地访问http://localhost:9200 我确实遵循了这里解释的所有步骤:Ec2上的elasticsearch无法命中公共IP(超时) 喜欢 按照TJ在评论中说的做,重新启动实例。我不确定这是否有必要,但我做得

  • null 我确信我已经在127.0.0.1:27017启动了数据库服务,并且可以用shell和非异步方法连接。错误: PrimaryServerSelector没有从群集描述中选择服务器ClusterDescription{type=unknown,connectionmode=single,all=[ServerDescription{address=localhost:27017,type=u

  • 我有一个Angular应用程序,有一个API,它连接并调用一个在服务器上建立的数据库,该数据库具有一个公共IP。 第二,你有什么想法为什么会发生这种情况吗? 谢谢。

  • 笔记操作系统是ubuntu 14* 我在MYSQL服务器上的连接让我头疼不已。我尝试通过我的公共ip连接到我的MYSQL服务器内部。但我无法连接。当我连接到本地主机和外部连接时,我能够连接。 我注释了绑定地址,这应该将地址绑定到0.0.0.0。我还试图将绑定广告设置为0.0.0.0。这也行不通。 我的主机文件设置如下: 当我将端口80上的telnet连接到我的公共ip时,没有问题。 我得到: 但当