mysql_connect не работает с localhost на моей машине с Windows - PullRequest
2 голосов
/ 25 октября 2010

Это не работает с моей установкой PHP 5.3.3 в WAMP / Windows 7:

mysql_connect('localhost', 'root', '');

После Maximum execution time появляется эта ошибка:

Предупреждение:mysql_connect () [function.mysql-connect]: [2002] Попытка подключения не удалась, потому что подключенная сторона этого не сделала (пытается подключиться через tcp: // localhost: 3306)

Предупреждение: mysql_connect () [function.mysql-connect]: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить.

Это работает:

mysql_connect('127.0.0.1', 'root', '');

Мне интересно, как это связано с этим, из PHP документов :

Всякий раз, когда вы указываете "localhost" или "localhost:порт "как сервер, клиентская библиотека MySQL переопределит это и попытается подключиться к локальному сокету (именованный канал в Windows).Если вы хотите использовать TCP / IP, используйте «127.0.0.1» вместо «localhost».Если клиентская библиотека MySQL пытается подключиться к неправильному локальному сокету, вы должны установить правильный путь, как в вашей конфигурации PHP, и оставить поле сервера пустым.

Это из моего php.ini:

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysql.default-socket
mysql.default_socket =

Это ошибка или что происходит?


Обновление : я использую MySQL 5.1.36 что-то, и я могу подключитьсяк этому иначе.Забыл упомянуть, но это работает с PHP 5.3.0 и 5.2.11.Конечно, я могу просто изменить localhost на 127.0.0.1, но я хочу знать, почему я не могу использовать localhost.


Обновление 2 : Добавление (раскомментирование)127.0.0.1 localhost чтобы файл hosts заставил его работать.Но зачем это нужно?

Ответы [ 4 ]

1 голос
/ 25 октября 2010

Попробуйте добавить 127.0.0.1 localhost к C:\Windows\System32\drivers\etc\hosts?

1 голос
/ 26 октября 2010

Подано ошибка с PHP. Проблема связана с MySQL и связана с тем, что неправильно подключается ко всем возможным IP-адресам для домена .

.

Решение? Не используйте имена хостов для подключения к базам данных, если это не является абсолютно необходимым. Это также может оказать положительное влияние на производительность .

1 голос
/ 25 октября 2010

У вас просто проблемы с подключением через PHP или вы не можете установить соединение с MySQL из командной строки? Если вы вообще не можете подключиться, убедитесь, что служба работает и прослушивает порт 3306.

Вы также можете попробовать изменить localhost на: 127.0.0.1:3306

Или

$ cfg ['Servers'] [$ i] ['host'] = 'localhost';

до

$ cfg ['Servers'] [$ i] ['host'] = '127.0.0.1';

0 голосов
/ 06 декабря 2010

На самом деле это ошибка в драйвере php_mysql. Смотри http://bugs.php.net/bug.php?id=48082

...