Проблема именованных каналов в 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 вместо этого работает).

Вот что у меня есть в 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

1 ответ

Решение

Похоже, что это ошибка, затрагивающая двоичные файлы VC9. Смотрите: http://bugs.php.net/bug.php?id=48082 (если ссылка не работает, попробуйте эту кешированную версию). По мнению andrey@php.net:

Патч работает над.

Поддержка будет в следующей минорной версии PHP, будь то 5.4 или что-то еще.

5.3.x этого не получит, так как это классифицируется как новая функция.


Как человек, который задал этот вопрос, я хотел бы отметить, что я использовал веб-сервер Apache. На странице загрузок PHP для Windows написано, что двоичные файлы VC9 не должны использоваться с Apache (я не знал в то время), но это, кажется, отдельная проблема, поскольку у пользователей IIS также была такая же проблема, если вы посмотрите на сообщение об ошибке.

Другие вопросы по тегам