运行环境:
appserv 2.6.0
includes:Apache Web Server Version 2.2.8
PHP Script Language Version 6.0.0-dev
MySQL Database Version 6.0.4-alpha
phpMyAdmin Database Manager Version 2.10.3
问题描述:
php无法连接到数据库。
错误提示:
Warning
: mysql_connect() [
function.mysql-connect
]: [2002] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试 (trying to connect via tcp://localhost:3306) in
D:\appserv\www\test.php
on line
2
Warning : mysql_connect() [ function.mysql-connect ]: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 in D:\appserv\www\test.php on line 2
Fatal error : Maximum execution time of 60 seconds exceeded in D:\appserv\www\test.php on line 2
Warning : mysql_connect() [ function.mysql-connect ]: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 in D:\appserv\www\test.php on line 2
Fatal error : Maximum execution time of 60 seconds exceeded in D:\appserv\www\test.php on line 2
测试文件:
test.php
<?php
$link=mysql_connect('localhost','root','345');
if(!$link)
{
echo "连接失败!";
}
else{
echo "连接成功!";
}
mysql_close();
?>
$link=mysql_connect('localhost','root','345');
if(!$link)
{
echo "连接失败!";
}
else{
echo "连接成功!";
}
mysql_close();
?>
查找原因:
1.检查mysql是否正常运行。
进入命令行模式: win+r,键入cmd,回车。
mysql -hlocalhost -uroot -pkeyword
注:keyword为数据库连接密码
能进入mysql说明,mysql能正常运行。
2.于是说明是无法与php连接上。经查看别人的案例,得到如下解决方案
解决方案:
在C:\Windows\System32\drivers\etc\目录下的hosts.txt中,找到下面一行
# 127.0.0.1 localhost
将#去掉。
注:localhost默认是没有定义的,所以需将注释去掉
结果:
再次测试,显示“成功!”。