一、背景
switchHosts是一個非常不錯的支援切換host的軟體,可以在 開發環境、測試環境、線上環境等之間自由切換。
https://oldj.github.io/SwitchHosts/
最近遇到一個問題,在關閉SwitchHosts時,啟動内嵌的MySQL服務進行單元測試時,報錯。
核心意識是提示無法解析 localhost。
二、問題分析
但是此時SwitchHosts并沒有開啟啊!大家都潛意識地認為沒有開啟SwitchHosts此時hosts檔案中應該是類似上圖所示的 預設的hosts映射。
非常費解...
最終抱着懷疑人生的态度,打開本地host檔案,發現本地hosts檔案裡的确隻有 #SwitchHosts 這一行....
于是按照上面的截圖所示,将原始的 hosts 配置重新寫回去并儲存,一切正常。
是以懷疑隻要安裝了 SwitchHosts,會預設将本地hosts檔案清空,配置生效時寫入或者通過其他機制讓域名到IP的映射生效。
其實此時開啟SwitchHosts,切換到 帶有localhost的映射也可以正确運作。
另外安裝最新版(3.5.0)發現SwitchHosts 退出後,本地的hosts檔案是 SwitchHosts中最後生效的設定。
三、反思
要相信錯誤提示,要相信錯誤提示,要相信錯誤提示!
當自己的慣性思維和錯誤提示沖突時,優先按照錯誤提示的暗示來排查問題!!
用軟體時如果能了解原理最好去了解,如果無法了解原理要多觀察軟體的設定對本地檔案的影響。