PHP 命名管道问题

PHP 命名管道问题

我正在尝试在安装了 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 用户也有同样的问题。

相关内容