【问题标题】:MongoDB Replica set with external addresses带有外部地址的 MongoDB 副本集
【发布时间】:2018-03-26 20:44:04
【问题描述】:

这是我的问题。 Mongodb 在我的 debian 8 服务器上运行良好,但我想做一个带有外部地址的副本集......这是我的问题:
- 我在不同的网络上有两个 VPS
- 我按照互联网上的教程进行操作,但出现错误消息“副本集配置中的所有主机名都必须是 localhost”

这是我的 mongodb 配置的一部分:

网络:
端口:27017
bindIp: 51.X.X.1, 167.X.X.4

我没有绑定任何本地主机地址。我能做什么 ?我是否需要做一些特别的事情才能让它发挥作用?

最好的问候

【问题讨论】:

  • 您的 MongoDB 配置在这里可能无关紧要。重要的是何时将成员添加到副本集中。它们必须全部是本地主机引用,或者必须是 NONE。问题是,您使用什么命令将成员添加到您的副本集中?您应该向我们展示这些命令,以便我们可以看到冲突在哪里。
  • 您好,感谢您的回答。这是命令: rs.initiate() rs.add("51.X.X.1:27017") rs.add("167.X.X.4:27017") 我没有使用任何本地主机地址...

标签: mongodb set replication


【解决方案1】:

错误消息表明您的副本集配置包含一个 localhost 地址,如果您没有在任何地方明确指定 localhost,它可能是由rs.initiate() 中的默认配置添加的。

您可以检查rs.conf() 的输出以查看当前的复制集配置。由于您想指定一个公共主机名,我会include your desired config for rs.initiate() 而不是在您启动副本集时依赖默认值。我还建议您关注服务器版本的tutorials in the MongoDB documentation,因为第三方教程可能已过时或遗漏重要细节。

如果您想更正现有配置,可以复制rs.conf()报告的当前副本集配置,编辑主机名或IP地址,然后将更新的配置文档传递给rs.reconfig()

注意:在绑定到外部 IP 之前,请查看 MongoDB Security Checklist 并确保您已配置适当的安全措施,例如访问控制、身份验证、网络加密 (TLS/SSL) 和防火墙规则。理想情况下,您应该有一个 VPN/VPC 用于副本集成员之间的私人通信,而不是直接使用公共网络。

【讨论】:

  • 感谢您的回答!我会尽快检查这个。我也会检查 VPN。
猜你喜欢
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
  • 2016-09-28
  • 1970-01-01
相关资源
最近更新 更多