MySQL больше не общается с PHP

5412
Matt Ellen

Я только что обновился с Windows XP до Windows 7 (64 бит)

Я использовал EasyPHP 5.3.1 для разработки своего веб-сайта, но, поскольку я обновился, я не могу заставить PHP общаться с MySQL.

Даже страница PHPMyAdmin не загружается.

Я попытался установить последнюю 64-битную версию MySQL вместо поставляемой версии MySQL, но это не помогло.

Запросы просто не доходят до MySQL.

Я проверил, что БД для моей базы данных работает, запустив mysql в командной строке.

PHPMyAdmin не отображает ошибку, просто пустая страница.

Ошибка с моего сайта:

Предупреждение: PDO :: __ construct () [pdo .-- construct]: [2002] Попытка подключения не удалась, поскольку подключенная сторона не (пыталась подключиться через tcp: // localhost: 3306) в E: \ services \ EasyPHP- 5.3.1 \ www \ IdeaWeb \ classes \ Security.inc on line 14

Неустранимая ошибка: максимальное время выполнения 60 секунд превышено в E: \ services \ EasyPHP-5.3.1 \ www \ IdeaWeb \ classes \ Security.inc в строке 0

Кто-нибудь знает как это решить? (т.е. получите MySQL, говорящий с PHP.)

1

5 ответов на вопрос

2
Matt Ellen

ХОРОШО. Я не знал этого, но 127.0.0.1 и localhost - это не одно и то же в Windows 7.

Я сделал более глубокий поиск в Google и нашел эту тему . По сути, он говорит, что для использования localhost вам нужно настроить его в hostfile так, чтобы он указывал на 127.0.0.1.

1
David Spillett

Как вы относитесь к службе SQL? По имени локальной машины «localhost», DNS-имя, которое указывает на машину, IP-адрес, связанный с физическим интерфейсом на машине, 127.0.0.1, ...?

Если вы обращаетесь к службе SQL с помощью чего-либо, что может выглядеть удаленно внешним, то наиболее вероятным виновником является брандмауэр Windows, блокирующий доступ. Это хорошая вещь (брандмауэр должен блокировать вещи по умолчанию, разрешая только подключения, если это явно указано), вам просто нужно указать это, чтобы разрешить ваши подключения SQL. Я не использовал Windows 7, поэтому я не могу точно сказать вам, как это сделать (вещи, несомненно, перемещались между версиями), но это не должно быть трудным. Кроме того, если вы используете внешнее имя / адрес в качестве имени хоста для соединений, попробуйте вместо этого использовать что-то явно локальное (localhost, 127.0.0.1).

В качестве временной меры, чтобы доказать, что брандмауэр - это то, что останавливает соединение, прежде чем вы начнете вносить изменения, полностью отключите его на минуту и ​​повторите попытку. Если PHP-> SQL qorks с выключенным брандмауэром, то ваша конфигурация брандмауэра нуждается в настройке, если она все еще не работает, то проблема кроется в другом месте.

Спасибо за идею. Я выключил брандмауэр, но все равно получаю тот же результат. MySQL настроен с настройками по умолчанию (для EasyPHP), и соединение с localhost. Matt Ellen 14 лет назад 0
0
Jeff Atwood

иди туда

"Панель управления >> Система и безопасность >> Брандмауэр Windows >> Разрешенные программы или ..."

Хорошо, теперь проверьте эти параметры:

  1. BranchCache - поиск контента (пользователь http)
  2. "" "" "" "" "" "- Клиент размещенного кэша (пользователь https)
  3. "" "" "" "" "" "- сервер размещенного кэша (пользователь https)
  4. "" "" "" "" "" "- обнаружение пира (пользователь wsd)

наслаждайся: D

0

Все, что вам нужно сделать, это отредактировать следующий файл, если у вас есть права администратора

C: \ WINDOWS \ system32 \ Drivers \ Etc \ хостов

раскомментировав строку, которая говорит

127.0.0.1 localhost 

Сохраните и обновите свои страницы ....

0
Kyle

У меня была эта проблема.

Вот как это должно выглядеть, если у вас возникли проблемы:

<?php $connect = mysql_connect('127.0.0.1','root',''); ?> 

Для получения дополнительной информации о вашей базе данных MySQL щелкните правой кнопкой мыши значок ePHP на панели инструментов и выберите «Админ ...» -> Затем откроется новая страница и нажмите «Управление MySQL». Надеюсь это поможет.