用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > mysql教程

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

时间:2015-01-23  来源:西部数据  作者:西部数据

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

确认是mysql性能问题后,考虑是mysql的域名反查功能影响了速度,令我失望的是,在my.ini里面关闭域名反查后问题依旧存在.

百思不得其解时我突发奇想将代码中的服务器的地址从localhost修改为了127.0.0.1,那个神奇的1秒钟延迟居然消失了.

换成ip后居然就好了,难道是localhost存在啥蹊跷?打开cmd,输入ping localhost,ping输出的结果让我十分惊讶.

没错,localhost 出来的是 ipv6 地址 ::1,那么这一秒延迟的原因也很容易理解了,使用localhost连接,程序解析出来的地址是ipv6地址::1,然后去尝试连接监听这个地址的mysql,而显然的是mysql监听的是ipv4地址127.0.0.1, ipv6连不上超时后会再去连接ipv4地址127.0.0.1,这就是这个1秒钟延迟出现的原因.

打开windows的hosts文件,你会看到下面的注释:

  1. # localhost name resolution is handled within DNS itself. 
  2. #    127.0.0.1       localhost  --phpfensi.com
  3. #    ::1             localhost 

解决方法:

方案1,使用127.0.0.1而不是localhost去连接mysql.

方案2,编辑hosts文件强制将127.0.0.1绑定在localhost.

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门