老男人百科 > 百科 > 正文

mysql连接本地数据库失败(mysql连接不上本地服务器)

2023-04-29 07:56:49 阅读( 3362)

小编:最近本地调试网站的时候个别程序如phpcms一直出现这个问题,速度异常慢,偶尔发现下面的文章,才提醒了我,原来问题这样的。

边肖:最近在本地调试网站时,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绑定到本地主机。

专题页