Windows10下MongoDB多服务器配置及连接失败问题解决
解决Windows 10上MongoDB绑定自定义主机名后连接失败的问题
从你的日志能一眼揪出核心问题:系统压根不知道My-Example-Associated-Hostname这个主机名对应哪个IP——不管是mongod启动时还是客户端连接时,都报了HostNotFound: Could not find address for My-Example-Associated-Hostname:27017的错误,这是因为Windows没有本地映射规则来解析这个自定义主机名。下面是一步步的解决办法:
步骤1:获取你的本地IPv4地址
打开命令提示符(CMD),敲下面的命令:
ipconfig
在输出里找到当前网卡对应的IPv4地址,比如192.168.1.105(这个地址根据你的网络环境会不一样,记下来)。
步骤2:修改本地hosts文件做主机名映射
Windows的hosts文件负责本地主机名到IP的直接映射,位置固定在:
C:\Windows\System32\drivers\etc\hosts
- 右键点击记事本,选择以管理员身份运行(普通权限改不了这个文件),然后打开hosts文件(注意要选“所有文件”才能看到它)。
- 在文件末尾加一行,把你的IPv4地址和自定义主机名绑定:
192.168.1.105 My-Example-Associated-Hostname
把上面的IP换成你自己的,保存文件即可。
步骤3:验证主机名解析是否生效
回到命令提示符,执行ping命令测试:
ping My-Example-Associated-Hostname
如果输出显示正在ping你刚才设置的IPv4地址,并且有正常响应,说明映射成功了。要是还是失败,就执行ipconfig /flushdns刷新DNS缓存再试。
步骤4:重启MongoDB服务
先关掉之前运行的mongod进程(Ctrl+C或者任务管理器结束都行),然后重新执行启动命令:
mongod --bind_ip localhost,My-Example-Associated-Hostname
这时候看日志,应该不会再出现Found no addresses for HostNotFound的警告,而且会显示Listening on对应的IP地址。
步骤5:重新连接MongoDB客户端
再执行客户端连接命令:
mongo --host My-Example-Associated-Hostname
这次应该就能顺利连上MongoDB服务了。
额外小提示
- 如果只是在单机器上做复制集测试,其实可以直接绑定本地IP(比如
192.168.1.105)或者0.0.0.0(允许所有IP访问,生产环境别这么用),能直接跳过主机名解析的问题。 - 别忘了检查Windows防火墙有没有阻止27017端口的入站连接,必要时可以临时关防火墙测试,或者给MongoDB加个端口例外规则。
内容的提问来源于stack exchange,提问作者aak122114
相关产品推荐
相关产品推荐

