localhost与127.0.0.1问题?

发现问题:
因为需要开发新功能,所以在数据库用的是本机的。
在连接mysql使用的地址:
mysql:host=localhost;dbname=XXXXX
通过log查看到每次Opening DB connection的时候花费的时间较长。

当我在host中加入
127.0.0.1 localhost
时就正常了。

我想要知道的是请求localhost的时候发生了什么? 用127.0.0.1 与localhost有什么不同?
最好能够详细的解释下?

注:电脑在断网的情况下也试过,还是一样的情况。

阅读 9.3k
5 个回答

127.0.0.1 是ip,localhost是域名,域名需要解析,电脑本身是把localhost直接指定到本地的,你没有指定,就不知道指到哪里去了

  1. host 文件提供了类似 DNS 的地址解析功能。
  2. 127.0.0.1 是本机地址
  3. 127.0.0.1 localhost 将 localhost 解析为 127.0.0.1,也就是本机
  4. 以上这条解析是系统默认的,大部分可能你的系统是盗版XP。

是的其实你可以在host中添加
127.0.0.1 www.baidu.com 试试,你就明白其原理了。

时间都消耗在DNS解析的过程了。
在hosts文件添加
127.0.0.1 localhost
在客户端访问 localhost 会先去hosts文件查找到有指向到127.0.0.1这ip

这个解析一般是不用添加的
不知道你注意了没有 hosts文件里有句话:
# localhost name resolution is handled within DNS itself.

不过既然你解析不了 只能手动加上了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进