当前位置: 首页 > 知识 >正文

Mysql教程之Windows 7/8下连接本地MySQL慢的问题解析

边肖:最近在本地调试网站时,phpcms等一些程序出现了这个问题,速度非常慢。偶然发现下面这篇文章,提醒我原来问题是这样的。

最近,当我在windows上开发一个应用程序时,我发现了一个有趣的问题:我的本地程序连接到本地mysql库打开它需要大约一秒钟的时间。

问题分析

考虑到可能是程序性能问题,我用xdebug的性能日志功能输出了程序运行日志,发现连接mysql的函数时间居然占用了近95%的执行时间。

确认是mysql性能问题后,我认为是mysql的域名反向查找功能影响了速度。令我失望的是,在my.ini中关闭域名反向查找后,问题依然存在

在我百思不得其解的时候,突然想到把代码中服务器的地址从localhost改成127.0.0.1,那神奇的一秒延迟竟然消失了。

转ip其实挺好的。localhost有问题吗?打开cmd,键入ping localhost,ping输出的结果让我大吃一惊:

Mysql教程之Windows  7/8下连接本地MySQL慢的问题解析是的,来自localhost的ipv6地址是:1,所以这第二次延迟的原因很容易理解。使用localhost连接,程序解析的地址是ipv6地址:1。

然后尝试连接到mysql监听这个地址。很明显,mysql监听的是127.0.0.1的ipv4地址,IPv6超时后会连接到127.0.0.1的ipv4地址,这就是这一秒延迟的原因。

打开windows hosts文件,您将看到以下注释。

# localhost name resolution is handled within DNS itself.

# 127.0.0.1 localhost

# :1 localhost

解决办法

备选方案1。用127.0.0.1代替localhost连接mysql。

选项2。编辑hosts文件,强制将127.0.0.1绑定到本地主机。

相关文章:
  • 7月11日基金净值:财通成长优选混合最新净值1.693,跌1.11%
  • 4月17日基金净值:易方达蓝筹精选混合最新净值2.1417,涨1.49%
  • 4月17日基金净值:博时央企创新驱动ETF最新净值1.4678,涨1.23%
  • 中国国企ETF(517180)获资金连续16日净流入 中国铁建涨5.37%,招商公路涨4.42%
  • 6月26日基金净值:易方达裕惠定开混合发起式A最新净值1.642,跌0.12%
  • 7月4日基金净值:格林鑫悦一年持有期混合A最新净值0.9072,涨0.15%
  • 5月26日基金净值:泰康沪深300ETF最新净值4.101,涨0.04%
  • 4月26日基金净值:华夏沪深300指数增强A最新净值1.735,涨0.29%
  • 5月26日基金净值:国投瑞银国家安全混合A最新净值1.105,跌0.18%
  • 6月27日基金净值:华夏科创板50ETF联接A最新净值0.8137,涨0.16%