首 页 » 软件使用 » PHP无法连接mysql数据库

PHP无法连接mysql数据库

[ 2014-10-25 16:18 | 浏览次数: 2,620次 | 1条评论 ]

PHP版本5.3.2, Mysql版本5.1.43,Apache版本2.2.4

在一个php测试文件中写了测试连接mysql的代码:

1
2
3
4
$link=mysql_connect("localhost","test","test_pass") or die(mysql_error()); 
if(!$link) echo "失败!";
else echo "成功!";
mysql_close();

在浏览器打开此php文件,结果打开失败,无响应.

使用mysql.exe连接Mysql服务,是可以打开的,说明mysql服务好的.

使用

<?

phpinfo();

?>

测试,  php显示的信息也是好的.

那为什么php无法连接mysql呢?

将默认的php.ini-development重命名为php.ini, 这样可以打开php的log,重启apach. 打开浏览器,结果显示:

Warning: _connect() [function.-connect]: [2002] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试 (trying to connect via tcp://localhost:3306) in E:\Server\Web\php_study\.php on line 5

Warning: () [function.mysql-connect]: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 in E:\Server\Web\php_study\mysql.php on line 5

Fatal error: Maximum execution time of 30 seconds exceeded in E:\Server\Web\php_study\mysql.php on line 5

崩溃了, 居然连不上localhost:3306, mysql能连接上为啥你连接不上呢?

后来使用php5.4.30, 居然显示正常了.

莫名其妙.

将localhost改为127.0.0.1, php5.3.2也正常了,看来是localhost问题.

打开C:\Windows\System32\drivers\etc\hosts,发现这行

#    127.0.0.1       localhost

是注释掉的.

试试去掉注释, 居然好了.

奇怪.

查查网上说法,说是当使用localhost时mysql会使用unix socket, 使用127.0.0.1时会使用windows的socket.

不明白mysql为啥要做这个区别.

您可以任意转载本文,但转载时请勿删除作者信息。
作者:hgyxbll,原文链接:http://shashanzhao.com/archives/1094.html
上一篇: | 下一篇:

沙发已经被占,赶紧抢板凳吧![点此发言]

  1. 博主你好,你博客弄得不错!