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

Ошибка подключения к БД MySQL

Я возился с Flash Builder (бета 2) и пытался подключить некоторые службы PHP. Это предельно просто через FB без сбоев. Но я уже несколько дней икаю.

Я использую последнюю установку WAMP только с одной упомянутой ниже модификацией (свежая установка) на WinXPSP2.

Подводя итог, у меня есть очень простая таблица БД, первичный ключ + 4 других поля. У меня есть образец службы PHP, настроенной для общения с MySQL и получения данных строки таблицы. Однако независимо от того, пытаюсь ли я подключиться через FB или просто запускаю test.php, который использует ту же службу PHP, я получаю следующие ошибки от MySQL:

**Warning: mysqli_connect() [function.mysqli-connect]: MySQL server has gone away in C:\wamp\www\PHPService\services\EmployeeService.php on line 33

Warning: mysqli_connect() [function.mysqli-connect]: Error while reading greeting packet. PID=1024 in C:\wamp\www\PHPService\services\EmployeeService.php on line 33

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2006): MySQL server has gone away in C:\wamp\www\PHPService\services\EmployeeService.php on line 33

Fatal error: Maximum execution time of 60 seconds exceeded in C:\wamp\www\PHPService\services\EmployeeService.php on line 27**

Как было предложено на форуме Adobe FB, я попытался увеличить значение по умолчанию max_execution_time = 30; в php.ini до 120, 240, а затем 360 в таком порядке. Никакой сигары.

Этот URL: http://www.codefinger.co.nz/_etc/mySQLError.zip содержит;

Любая помощь приветствуется, я не мастер MySQL или PHP, все предоставленное было взято из онлайн-примеров материалов от Adobe, все, что я сделал, это поместил в мои собственные данные БД и измененную версию 'EmployeeService.php', чтобы отразить данные, которые я пытаюсь получить из MySQL.

Если вы очень хотите помочь, а я не включил несколько важных журналов или чего-то еще, просто кричите и, возможно, дайте мне знать, где я могу найти то, что вам нужно для устранения неполадок.

Ура, - данжа

[править] Я должен отметить, что в 'EmployeeService.php' вы увидите, что я закомментировал настройки имени пользователя / pswd, просто чтобы проверить, была ли это проблема, хотя я пробовал это с правильными кредитами (прокомментированными). Я также временно отключил свой брандмауэр во время тестирования, пожимать плечами.

Проблема заключается в подключении к вашему серверу MySQL. Вы можете подключиться через phpMyAdmin, верно? Таким образом, кажется, что сам MySQL подключен правильно.

Глядя на ваш код, это выглядит очень подозрительно:

  var $server = "localhost"; 
  var $port = "80"; 

Порт 3306 является портом MySQL по умолчанию, но, возможно, вы настроили его для работы на другом, я не знаю. Но запуск MySQL на порту 80 был бы довольно глупым, поскольку это порт для HTTP. Я предполагаю, что у вас есть веб-сервер (Apache), работающий на этом порту, поскольку вы упомянули WAMP. Если вы не изменили Apache для работы на другом порту, что было бы еще более странно.

Порт 80 - это http, порт 3306 (по умолчанию) - это то место, где MySQL слушает, если вы указали php для подключения к серверу mysql через порт 80, это объясняет, почему вы не можете подключиться. Удаление аргумента порта и разрешение ему использовать значение по умолчанию объяснило бы, почему это сработало.

После долгой отладки, проб и ошибок я обнаружил, что виновником является включение «номера порта» при подключении к базе данных MySQL.

Удалив порт arg, все заработало.

Очевидно, что аргумент порта существует по какой-то причине, поэтому, вместо того, чтобы оставаться в неведении, может ли кто-нибудь сказать мне, почему номер порта (значение 80) вызывает эти ошибки? PHPinfo сообщает мне, что порт 80 прослушивается, и я даже пробовал это с отключенным брандмауэром.