这是我的问题。 Mongodb在我的debian 8服务器上工作得很好,但是我想用外部地址做一个副本集......这是我的问题:
- 我在不同的网络上有两个VPS
- 我在互联网上遵循了一个教程,但我有一条错误消息“副本集配置中的所有主机名都必须是localhost”
这是我的mongodb配置的一部分:
net:
港口:27017
bindIp:51.X.X.1,167.X.X.4
我没有绑定任何localhost地址。我能做什么 ?我是否做了一些特别的事情来使它有效?
最好的问候
答案 0 :(得分:1)
错误消息表明您的副本集配置包含一个本地主机地址,如果您未在任何地方明确指定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在副本集成员之间进行私密通信,而不是直接使用公共网络。