IP错误引起MongoDB副本集初始化失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP错误引起MongoDB副本集初始化失败相关的知识,希望对你有一定的参考价值。
问题描述:
在给客户搭建环境的时候,在初始化一个MongoDB副本集的过程中,出现了初始化失败,报"No host described in new configuration 1 for replica set mongotest maps to this node"。具体报错信息如下(为保护客户隐私,IP均经过处理):
2018-06-20T11:51:45.695+0800 I CONTROL [initandlisten]
> config = { _id:"mongotest", members:[ {_id:0,host:"10.0.0.217:27017"}] };
{
"_id" : "mongotest",
"members" : [
{
"_id" : 0,
"host" : "10.0.0.217:27017"
}
]
}
> rs.initiate(config);
{
"ok" : 0,
"errmsg" : "No host described in new configuration 1 for replica set mongotest maps to this node",
"code" : 93,
"codeName" : "InvalidReplicaSetConfig"
}
>
在执行 config = { _id:"mongotest", members:[ {_id:0,host:"10.0.0.217:27017"}] };的时候成功了,但是执行 rs.initiate(config);的时候一直在报这个错误。
原因分析:
看到"No host described in new configuration 1 for replica set mongotest maps to this node"的提示,怀疑是命令行和mongo.conf文件里面的配置不一致,但是查看配置文件,确实配置的是mongotest:
[[email protected] ~]# cat /etc/mongodb/mongo.conf
systemLog:
destination: file
path: "/opt/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: /opt/mongodb
setParameter:
enableLocalhostAuthBypass: true
replication:
replSetName: mongotest #和执行的命令行是一致的,没有问题
processManagement:
fork: true
pidFilePath: "/opt/mongodb/mongod.pid"
security:
authorization: enabled
keyFile: "/etc/mongodb/mongodb-keyfile"
[[email protected] ~]#
于是想到会不会是IP的问题。
因为进入这台机器是用的堡垒机进去,机器的hostname和命令行窗口显示的机器IP都是10.0.0.217。但是实际上本机的IP并不是这个,ifconfig查看真实的IP地址实际为172.0.2.12,而不是hostname显示的10.0.0.217.在配置命令行的时候,直接用了hostname的IP,因此出现了这个报错。
解决方法:
将命令中的IP替换为正确的IP,然后再在MongoDB命令行里面重新执行命令,就OK了:
2018-06-20T11:51:45.695+0800 I CONTROL [initandlisten]
> config = { _id:"mongotest", members:[ {_id:0,host:"172.0.2.12:27017"}] };
{
"_id" : "mongotest",
"members" : [
{
"_id" : 0,
"host" : "172.0.2.12:27017"
}
]
}
> rs.initiate(config); #这次就不再报错了
{ "ok" : 1 }
mongotest:OTHER>
mongotest:SECONDARY>
mongotest:PRIMARY>
mongotest:PRIMARY>
mongotest:PRIMARY>
mongotest:PRIMARY>
单点的副本集就好了。
以上是关于IP错误引起MongoDB副本集初始化失败的主要内容,如果未能解决你的问题,请参考以下文章