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

PHP не может подключиться к MySQL

Недавно я установил Apache 2 + PHP 5.3.1 + MySQL 5.1.44 на свой 64-битный компьютер с Windows 7, следуя этому руководству: http://sleeplessgeek.blogspot.com/2010/01/setting-up-apache-php-mysql-phpmyadmin.html

Все прошло нормально, php отлично работает (даже с XDebug), но я не могу подключиться к серверу mysql.

Я написал простой скрипт для проверки соединения (да, у root нет прохода):

    $username = "root";
    $password = "";
    $database = "test";
    $hostname = "localhost";

$conn = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL Database!!");

Он выводит эту ошибку через 60 секунд тайм-аута:

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

Я могу подключиться к mysql с помощью cmd> mysql -h localhost -u root

Сервисы работают исправно.


Также, похоже, проблема с PhpMyAdmin (с использованием 3.2.5). Как только я набираю user и передаю страницу, страница загружается и становится пустой (длина содержимого в заголовках равна 0, а код состояния - 302 Found). Похоже, что-то не так с куки (мой метод авторизации).

Надеюсь, у кого-то есть ключ к разгадке, это должно быть что-то глупое, простое, что я пропустил. Заранее спасибо.

Я установил это на моем компьютере с момента обновления. В моем случае достаточно указать 127.0.0.1 в качестве хоста вместо localhost.

Однажды это меня достаточно надоест, чтобы по-настоящему это исправить :)

Редактировать относительно phpMyAdmin
Ах, phpMyAdmin ... да! Я чувствую твою боль. Я страстно НЕНАВИЖУ каждый раз, когда меня заставляли переустанавливать это приложение. Это отличное приложение, когда оно работает, но приведение его в рабочее состояние со временем доставило мне много горя.

По моему личному опыту, убедитесь, что все необходимые модули PHP загружены, и убедитесь, что каталог сеансов PHP (как указано в php.ini) действительно существует в файловой системе. Если вы измените что-либо из этого, перезапустите Apache.

Кроме того, по моему опыту, одного перезапуска Apache недостаточно - перезапуск браузера необходим для правильной очистки сеанса.

Это известная ошибка: - http://bugs.php.net/bug.php?id=50172 Решение состоит в том, чтобы обновить ваш файл hosts без комментариев или добавления:

127.0.0.1       localhost

Некоторые версии PHP 5 не понимают окна, предоставляющие ему IPv6-адрес