欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败

一、MYSQL连接错误描述:
在搭建PHP开发环境的过程中,待所有的必须的软件都安装准备好后,使用如下代码对mysql数据库作连接测试,
代码:
<?php 
$link=mysql_connect('localhost','root','123456'); 
if(!$link) 
echo "连接失败!";
else{
echo "连接成功!";
}
mysql_close();
?>
在测试是否能够成功连接mysql数据库时,浏览器提示如下错误:
Warning: mysql_connect() [function.mysql-connect]: [2002] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试 (trying to connect via tcp://localhost:3306) in D:\PHPweb\test.php on line 2
Warning: mysql_connect() [function.mysql-connect]: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 inD:\PHPweb\test.php on line 2
Fatal error: Maximum execution time of 30 seconds exceeded in D:\PHPweb\test.php on line 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:\Windows\System32\drivers\etc下的hosts文件上。
 
三、解决问题
找到hosts文件后,用记事本打开该文件,发现
# 127.0.0.1       localhost
前是有#号注释了,于是将前面的#号去掉,保存,刷新浏览器后,问题解决。

来自 http://blog.sina.com.cn/s/blog_5ceb51480101an4x.html
普通分类: