原文地址:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败 作者: 四海名汀
一、MYSQL连接错误描述:
在搭建PHP开发环境的过程中,待所有的必须的软件都安装准备好后,使用如下代码对mysql数据库作连接测试,
代码:
$link=mysql_connect('localhost','root','123456');
if(!$link)
{
echo "连接失败!";
}
else{
echo "连接成功!";
}
mysql_close();
?>
在测试是否能够成功连接mysql数据库时,浏览器提示如下错误:
Warning:mysql_connect() [function.mysql-connect]:[2002] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试 (trying to connect viatcp://localhost:3306) in D:PHPwebtest.phponline 2
Warning:mysql_connect() [function.mysql-connect]:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 inD:PHPwebtest.phponline 2
Fatalerror:Maximum execution time of 30 seconds exceededin D:PHPwebtest.phponline 2

还好是手动配置的环境,不是集成环境了。

二、查找原因
按下Win+R,输入cmd,再输入命令mysql -uroot -p 回车,提示输入数据库密码;
输入密码,回车,成功进入mysql命令行;
cmd后再输入 netstat -an 回车
TCP 0.0.0.0:3306 pc LISTENING
这说明mysql数据库的端口正处于监听状态;
或者你在cmd下输入如下命令,回车,
mysql -hlocalhost -uroot -p123456
如果都能成功进入mysql命令行,说明mysql正常运行, 只是无法与PHP进行通信。
检测了PHP的配置文件,没有作改动。
于是通过关键字“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”google一下,发现好多人都遇到类似情况,但是看下大家的回复都差不多,在查看这些搜索结果中的解决方法,还是不能解决该问题,逐将目光放在了位于C:WindowsSystem32driversetc下的hosts文件上。

三、解决问题
找到hosts文件后,用记事本打开该文件,发现
# 127.0.0.1 localhost
前是有#号注释了,于是将前面的#号去掉,保存,刷新浏览器后,问题解决。