12

每次我都会收到此消息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

服务器 2 -mongod.conf 文件

绑定 IP ee.ff.gg.hh

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

$主机名 DataMongo1

两台服务器上的端口 27071 均未注释

副本集配置文件

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

请帮我解决这个问题。

4

3 回答 3

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
于 2020-09-27T17:11:03.847 回答
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,然后这个问题就会消失。

于 2021-03-16T17:45:33.030 回答
1

好像端口不对。MongoDB 的默认端口是 27017,而不是 27071。

于 2019-05-28T09:50:55.490 回答