Я пытаюсь протестировать веб-сайт на локальном компьютере с установленной 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 также была такая же проблема, если вы посмотрите отчет об ошибке.