IP錯誤引起MongoDB副本集初始化失敗
阿新 • • 發佈:2018-06-20
got 報錯 for replset 17. uri ini map pass 問題描述:
在給客戶搭建環境的時候,在初始化一個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副本集初始化失敗