Назад | Перейти на главную страницу

Проблема именованного канала 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

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

Над патчем работают.

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

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


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