PHP 无法连接到 MySQL

PHP 无法连接到 MySQL

我最近按照以下指南在 Windows 7 64 位机器上安装了 Apache 2 + PHP 5.3.1 + MySQL 5.1.44: http://sleeplessgeek.blogspot.com/2010/01/setting-up-apache-php-mysql-phpmyadmin.html

一切顺利,php 运行良好(甚至使用 XDebug)但我无法连接到 mysql 服务器。

我编写的一个用于测试连接的简单脚本(是的,root 没有通过):

    $username = "root";
    $password = "";
    $database = "test";
    $hostname = "localhost";

$conn = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL Database!!");

超时 60 秒后会打印此错误:

警告:mysql_connect() [function.mysql-connect]:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机未能响应。

我可以使用 cmd>mysql -h localhost -u root 连接到 mysql

服务运行正常。


PhpMyAdmin(使用 3.2.5)似乎也存在问题。我一输入 user 并传递,页面就会加载并变为空白(标题中的内容长度为 0,但状态代码为 302 Found)。看起来 cookies(我的身份验证方法)出了问题。

我希望有人能提供线索,这一定是我遗漏的一些简单的事情。提前致谢。

答案1

自从升级以来,我的机器上就有这个。在我的例子中,指定 127.0.0.1 作为主机而不是 localhost 就可以了。

有一天它会困扰我到足以真正解决它:)

关于 phpMyAdmin 的编辑
啊,phpMyAdmin...是的!我理解你的痛苦。每次被迫重新安装这个应用程序时,我都恨之入骨。当它工作时,它是一款出色的应用程序,但随着时间的推移,让它进入工作状态给我带来了很多痛苦。

根据我的个人经验,请确保所有必需的 PHP 模块都已加载,并确保您的 PHP 会话目录(如 php.ini 中指定)确实存在于文件系统中。如果您更改了其中任何一项,请重新启动 Apache。

此外,根据我的经验,仅重新启动 Apache 是不够的 - 需要重新启动浏览器才能正确清除会话。

答案2

这是一个已知的错误:- http://bugs.php.net/bug.php?id=50172 解决方案是更新您的主机文件,取消注释或添加:

127.0.0.1       localhost

有些版本的 PHP 5 无法理解 Windows 为其提供 IPv6 地址

相关内容