【问题标题】:Error while adding a secondary instance in mongodb replica set在 mongodb 副本集中添加辅助实例时出错
【发布时间】:2015-04-20 11:41:04
【问题描述】:

我正在尝试部署 mongodb 副本集。我已将我的 mongodb 实例作为副本的主要实例。现在我正在尝试添加另一个托管在不同 IP 地址的 mongodb 实例,作为副本的辅助,但我收到以下错误:

    rs0:PRIMARY> rs.add("<ip address>:27017")
{
    "ok" : 0,
    "errmsg" : "Either all host names in a replica set configuration must be localhost references, or none must be; found 1 out of 2",
    "code" : 103
}

我做错了什么?

【问题讨论】:

    标签: mongodb replicaset


    【解决方案1】:

    当我尝试在同一台机器上运行两个 mongod 实例时,我遇到了这个问题。当我提供喜欢时它会引发错误

       rs.add("localhost:27027")
       (or)
       rs.add("127.0.0.1:27027")
    

    其中27027 是辅助端口号。

    解决方案:

    传递主机名而不是 IP 地址

      rs.add("myhostname:27027")
    

    【讨论】:

    • 对我来说 rs.add("127.0.0.1:27027") 有效。其他两个选项 rs.add("localhost:27027") 和 rs.add("hostname:27017") 抛出错误
    • 我尝试使用托管所有副本集的机器的 IP 地址,172.16.10.160, rs.add("172.16.10.160:27018") 在主机名失败后工作,但主要是因为我将监听地址设置为 0.0.0.0
    【解决方案2】:

    您新添加的副本集成员的 IP 地址是否解析为 localhost ?或者,您已经存在的成员是否解析为 localhost ?无论哪种方式,副本集都不允许混合本地主机/非本地主机配置。

    看看这条消息的source code location

    另外,Mongo guide on sharding 是这样说的:

    如果您使用“localhost”或 127.0.0.1 作为主机名部分 任何主机标识符,例如作为 addShard 的主机参数或 --configdb 运行时选项的值,那么您必须使用 “localhost” 或 127.0.0.1 用于任何 MongoDB 的所有主机设置 集群中的实例。如果你混合本地主机地址和远程 主机地址,MongoDB会报错。

    这同样适用于副本集。

    【讨论】:

    • 在尝试通过 ssh 隧道添加成员时如何处理此问题的任何想法?
    • 抱歉,我不能直截了当地说。但理论上隧道应该是透明的,因此不会产生影响。但是你必须尝试一下。
    • 问题是隧道随后可以作为“localhost:”访问,但我需要将主 mongodb 绑定到 127.0.0.1 和 172.17.0.1,因为 Docker 中的容器需要访问它。正是这个 172.17.0.1 引起了麻烦。这里有一个更好的解释dba.stackexchange.com/questions/173911/…
    【解决方案3】:

    要将 1 节点副本集的主副本从 localhost / 127.0.0.1 重新配置为外部主机名 / ip,您可以执行以下操作:

    cfg = rs.conf()
    cfg.members[0].host = "mongo0.example.net:27017"
    rs.reconfig(cfg)
    

    第一行获取当前副本集配置,第二行修改成员0的host字段,最后一行应用新配置。

    在此处查看更多详细信息:https://docs.mongodb.com/manual/tutorial/change-hostnames-in-a-replica-set/

    【讨论】:

      猜你喜欢
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      相关资源
      最近更新 更多