我正在尝试在安装了 Windows 7 的本地计算机上测试一个网站。我想使用命名管道连接到 MySQL 服务器,但mysql_connect()
似乎会引发错误:
[2002] No connection could be made because the target machine actively (trying to connect via tcp://localhost:3306)
由于某种原因,它仍然使用 TCP。我正在使用一个简单的 PHP (5.3) 脚本进行测试:
<?php
mysql_connect("localhost", "root", "password") or die();
echo "It works!";
?>
MySQL 客户端运行良好。这只是 PHP 的问题(注意:改用 TCP 即可)。
这就是我所拥有的我的配置文件:
[client]
pipe
socket=mysql
[mysqld]
skip-networking
enable-named-pipe
socket=mysql
我尝试设置这些变量php.ini:
pdo_mysql.default_socket = mysql
mysql.default_socket = mysql
mysqli.default_socket = mysql
答案1
这似乎是影响 VC9 二进制文件的一个错误。请参阅:http://bugs.php.net/bug.php?id=48082(如果链接无效,请尝试此缓存版本)。 根据[电子邮件保护]:
补丁正在制作中。
我们将在下一个 PHP 小版本中提供支持,无论是 5.4 还是其他版本。
5.3.x 不会获得此功能,因为它被归类为新功能。
作为提出这个问题的人,我想提一下,我使用的是 Apache Web 服务器。Windows 版 PHP 下载页面确实说 VC9 二进制文件不应该与 Apache 一起使用(我当时并不知道),但这似乎是一个单独的问题,因为如果你查看错误报告,IIS 用户也有同样的问题。