Windows

PHP命名管道問題

  • June 27, 2011

我正在嘗試在安裝了 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 代替工作)。

這就是我在my.ini中的內容:

[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

這似乎是一個影響 VC9 二進製文件的錯誤。請參閱:http ://bugs.php.net/bug.php?id=48082 (如果連結不起作用,請嘗試此記憶體版本)。根據andrey@php.net

正在開發一個更新檔。

支持將在下一個 PHP 次要版本中,無論是 5.4 還是其他版本。

5.3.x 不會得到這個,因為這被歸類為新功能。


作為提出這個問題的人,我想提一下我使用的是 Apache Web 伺服器。Windows的PHP 下載頁面確實說 VC9 二進製文件不應該與 Apache 一起使用(我當時不知道),但這似乎是一個單獨的問題,因為 IIS 使用者也有同樣的問題,如果你查看錯誤報告。

引用自:https://serverfault.com/questions/284434