首页 > 数据库技术 > 详细

IP错误引起MongoDB副本集初始化失败

时间:2018-06-20 14:22:01      阅读:268      评论:0      收藏:0      [点我收藏+]
问题描述:

在给客户搭建环境的时候,在初始化一个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:

[root@10-0-0-217 ~]# 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"
[root@10-0-0-217 ~]#

于是想到会不会是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副本集初始化失败

原文:http://blog.51cto.com/10950710/2130904

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!