【问题标题】:How to start a replica set without using localhost?如何在不使用 localhost 的情况下启动副本集?
【发布时间】:2015-06-17 16:19:16
【问题描述】:

我正在尝试初始化具有 3 个节点的副本集。在执行rs.initiate() 时出现以下错误:“副本集##### 的新配置1 中没有描述主机映射到该节点”

如果我尝试将第一个成员设置为“localhost:27017”,则会收到以下错误:“副本集配置中的所有主机名都必须是 localhost 引用,或者必须没有;找到 2 个中的 1 个”

我应该如何使用我的公共 ip 来启动副本集?

【问题讨论】:

  • 我不想使用本地主机。我想使用我服务器的 3 个公共 ip,但它不会让我以这种方式启动设置。当我尝试使用公共 ip 时,它给了我无法映射到该节点的错误。
  • 这个问题你解决了吗?

标签: mongodb replicaset


【解决方案1】:

你需要做的是在一个文档(例如config)中准备要用于副本集的配置,然后将此文档作为参数传递给rs.initiate(config)方法,像这样:

config = {
    _id : "your_replica_set_name",
     members : [
         {_id : 0, host : "yourIpAddress:port1"},
         {_id : 1, host : "yourIpAddress:port2"},
         {_id : 2, host : "yourIpAddress:port3", arbiterOnly: true},
     ]
}

rs.initiate(config)

更多详情MongoDB - replSetInitiate command

【讨论】:

  • 我正要投反对票,因为我遇到了同样的问题,并且在传递这样的配置时仍然收到错误,但后来我指定了端口号 27017,即使这是默认设置,并且有效。
【解决方案2】:

您实际上需要将您的 bindIp: 指令设置为您的服务器的 IP 地址。

您可以在下面找到默认配置:

# network interfaces
net:
port: 27017
bindIp: 127.0.0.1

【讨论】:

    猜你喜欢
    • 2020-03-12
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 2020-08-28
    相关资源
    最近更新 更多