errmsg”:“副本集 rs0 的新配置 1 中没有描述主机映射到此节点”,为什么我收到此消息?

问题描述 投票:0回答:4

我每次都收到这条消息

rs.initiate()

副本集 rs0 的新配置 1 中没有描述主机映射到此节点

这是我的 /etc/hosts/ 文件在两个副本集服务器上的样子。

服务器 1 和服务器 2“主机”文件

127.0.0.1 本地主机
aa.bb.cc.dd DataMongo1
ee.ff.gg.hh DataMongo2

转载

服务器1-mongod.conf文件

绑定ip aa.bb.cc.dd

Server 2 -mongod.conf 文件

绑定ip ee.ff.gg.hh

将 server1 主机名更改为 DataMongo1,将 server2 主机名更改为 DataMongo2

$主机名DataMongo1

端口 27071 在两台服务器上都没有注释

ReplicaSet 配置文件

cfg={
_id:"rs0",
成员:[{_id:0,host:"DataMongo1:27071"},{_id:1,host:"DataMongo2:27071"}]}

请帮我解决这个问题。

mongodb ubuntu-14.04 replicaset mongodb-replica-set
4个回答
4
投票

我刚遇到这个问题,在我的情况下,症状是一切正常,直到我重新启动服务器。

然后我会得到以下错误:

NodeNotFound: No host described in new configuration $id for replica set $name maps to this node

只需重新启动 mongodb 守护程序即可修复它,因此它不可能是副本集配置问题。

更详细地检查日志后,我注意到以下错误消息:

NETWORK  [replexec-0] getaddrinfo("$name.emilburzo.com") failed: Temporary failure in name resolution
-> bingo

它试图在网络完全启动之前查询主机名,因此副本集成员不知道自己的身份

将服务器的 FQDN 主机名添加到

/etc/hosts
修复它,例如:

127.0.1.1       shortname    shortname.fqdn.com

2
投票

貌似端口不对。 MongoDB 的默认端口是 27017,不是 27071。


2
投票

如果您使用的是 mongo.conf 文件,那么首先注释“复制”部分,如下所示,

...
#operationProfiling:

# replication:
#   replSetName: rs0-here

#sharding:
...

现在运行 mongod 并在 mongo 终端上配置副本集,如下所示,

rs.initiate({_id: "rs0-here", version: 1, members: [{ _id: 0, host : "your_host:27017" }]})

也可以在这里创建用户和数据库,然后退出。在 mongo.conf 中取消注释以下部分,

 replication:
   replSetName: rs0-here

再次运行 mongod 然后这个问题就会消失。


0
投票

我在 docker 上运行配置服务器副本,并在

rs.initiate
中遇到了同样的问题。我能够通过将成员的主机更改为
dockerContainerId:dockerContainerPort
来解决它。

© www.soinside.com 2019 - 2024. All rights reserved.