MongoDB副本集初始化报错No host maps to this node,如何解决?
解决MongoDB副本集初始化错误(code 93/74)
问题根源
执行rs.initiate()时,MongoDB自动生成的副本集配置使用了主机名Nnadozies-MacBook-Pro.local,但你的系统无法解析这个主机名,导致节点无法识别自身,触发InvalidReplicaSetConfig或NodeNotFound错误。另外注意启动命令里的bind_ip参数拼写错误:locahost应为localhost,先修正这个避免后续连接问题。
解决方法
方法一:手动指定副本集配置(推荐)
连接到MongoDB实例后,手动定义包含可解析地址的副本集配置,再执行初始化:
- 连接实例后,输入以下命令定义配置:
var config = { "_id": "rs0", "version": 1, "members": [ { "_id": 0, "host": "127.0.0.1:27018" } ] }
- 执行初始化:
rs.initiate(config)
验证:执行rs.status()查看副本集状态,显示ok:1即为成功。
方法二:修复主机名解析
如果需要使用主机名而非IP,修改系统hosts文件让主机名能解析到本地:
- 打开hosts文件:
- Mac/Linux:终端执行
sudo nano /etc/hosts - Windows:以管理员身份打开记事本,编辑
C:\Windows\System32\drivers\etc\hosts
- Mac/Linux:终端执行
- 添加一行记录:
127.0.0.1 Nnadozies-MacBook-Pro.local
- 保存文件后,重启MongoDB服务器,再执行
rs.initiate()即可。
内容的提问来源于stack exchange,提问作者Dozie
相关产品推荐
相关产品推荐

