JDBC连接MYSQL异常 java.net.unknownhostexception:loaclhost的一些拓展

前言:昨天通过JDBC连接MYSQL,遇到了一个问题。

JDBC连接MYSQL异常 java.net.unknownhostexception:loaclhost的一些拓展_第1张图片
通过这个异常日志,我就各种查找问题所在。大概其用了两个多小时,不出意外,我没有找到原因。
幸运的是,我找到了解决办法,并且这个解决办法可行。
将localhost换成127.0.0.1
事实上这应该不是我第一次遇到这种问题,我记得第一次遇到这个问题,应该是在我写pythonweb时候,程序运行页面一直是503状态,那个时候是将127.0.0.1换成localhost。

先来区分几个概念

  • localhost是指本地服务器,不联网,不使用网卡,不受防火墙等限制。在host文件中localhost与127.0.0.1之间存在映射
  • 127.0.0.1是本机服务器,不联网,需要使用网卡,受服务器限制。

localhost可以理解为域名,那么127.0.0.1是ip地址。域名需要解析为ip地址。在登录MYSQL,同样提供localhost与127.0.0.1两种方式,前者是通过socket去实现,我们平时mysql -u root -p即是这种方式。后者是通过port(端口3306)去实现的。但是讲到这里其实没有解释为什么上面需要把localhost改成127.0.0.1,今天去stackoverflow看,发现其实有很多人都有类似的经历,当然不限于JDBC连接MYSQL。他们也只是将其归结于疑难杂症。当然有些问题是可以解决的,只是还没有被人发现解决的办法。
说一个有意思的事情,今天我想去复现问题所在,去看看底层源码,localhost居然又成功跑通!!!
JDBC连接MYSQL异常 java.net.unknownhostexception:loaclhost的一些拓展_第2张图片

你可能感兴趣的:(那些年踩过的坑)