我最近按照以下指南在 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 地址