一、背景

switchHosts是一个非常不错的支持切换host的软件,可以在 开发环境、测试环境、线上环境等之间自由切换。

https://oldj.github.io/SwitchHosts/

记SwitchHosts导致解析不了localhost的坑_错误提示

最近遇到一个问题,在关闭SwitchHosts时,启动内嵌的MySQL服务进行单元测试时,报错。

核心意识是提示无法解析 localhost。

二、问题分析

但是此时SwitchHosts并没有开启啊!大家都潜意识地认为没有开启SwitchHosts此时hosts文件中应该是类似上图所示的 默认的hosts映射。

非常费解...

最终抱着怀疑人生的态度,打开本地host文件,发现本地hosts文件里的确只有  #SwitchHosts   这一行....

于是按照上面的截图所示,将原始的 hosts 配置重新写回去并保存,一切正常。

因此怀疑只要安装了 SwitchHosts,会默认将本地hosts文件清空,配置生效时写入或者通过其他机制让域名到IP的映射生效。

 

其实此时开启SwitchHosts,切换到 带有localhost的映射也可以正确运行。

 

另外安装最新版(3.5.0)发现SwitchHosts 退出后,本地的hosts文件是 SwitchHosts中最后生效的设置。

 

三、反思

要相信错误提示,要相信错误提示,要相信错误提示!

当自己的惯性思维和错误提示冲突时,优先按照错误提示的暗示来排查问题!!

用软件时如果能了解原理最好去了解,如果无法了解原理要多观察软件的设置对本地文件的影响。