1

Тема: Непонятная ошибка при установке phpMyAdmin

Доброго времени суток!

Редко обращаюсь за помощью, но тут что-то не могу сам сообразить в чём проблема...
Скачал phpMyAdmin самую последнюю версию. Установил в папку, доступную серверу. Пытаюсь зайти - получаю сообщение о том, что phpMyAdmin не может загрузить расширение mysql. Ладно, подправил php.ini, перезагрузил сервер, снова пытаюсь. Стартовая страница логина phpMyAdmin отобразилась нормально (т.е. расширение подгружено). Ввожу действующий логин с паролем, долго-долго жду..... потом меня перекидывает на адрес типа index.php?token=sdhgasgasldgu12 но... страница пустая.

Делал эксперимент. Создал вот такой скрипт:
<?php
echo mysql_connect('localhost', 'login', 'password') or die(mysql_error());
?>

удивительно, но в ответ получил не вывод mysql_error() а вот что:

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

От какого компьютера? Два сервера на одном компьютере.... что происходит-то?

Данные компьютера:
Apache 2.0.54
PHP 5.3.1
phpMyAdmin последняя версия
MySQL 5.1.45
OS Windows 7 Максимальная (сижу под админом)

Резюме: mysql подгружен, всё установлено, но phpMyAdmin по какой-то причине не работает. Помогите пожалуйста.

2

Re: Непонятная ошибка при установке phpMyAdmin

mark2010
Попробуйте зайти из командной строки:
[mono]mysql -uroot -ppass[/mono]
Вплотную к ключу -p впишите пароль root.

3

Re: Непонятная ошибка при установке phpMyAdmin

Hanut
Зашел абсолютно нормально. Вот...

C:\Users\Марк>mysql -u root -proot_password
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.45-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

4

Re: Непонятная ошибка при установке phpMyAdmin

Что самое интересное, что значимых ошибок Apache не выдаёт. Вот, смотрите:

[Fri Apr 09 18:38:25 2010] [notice] Apache/2.2.14 (Win32) PHP/5.3.1 configured -- resuming normal operations
[Fri Apr 09 18:38:25 2010] [notice] Server built: Sep 28 2009 22:41:08
[Fri Apr 09 18:38:25 2010] [notice] Parent: Created child process 672
[Fri Apr 09 18:38:26 2010] [notice] Child 672: Child process is running
[Fri Apr 09 18:38:26 2010] [notice] Child 672: Acquired the start mutex.
[Fri Apr 09 18:38:26 2010] [notice] Child 672: Starting 64 worker threads.
[Fri Apr 09 18:38:26 2010] [notice] Child 672: Starting thread to listen on port 80.
[Fri Apr 09 19:07:19 2010] [error] [client 127.0.0.1] File does not exist: D:/Server/www/favicon.ico
[Fri Apr 09 19:07:21 2010] [error] [client 127.0.0.1] File does not exist: D:/Server/www/favicon.ico

5

Re: Непонятная ошибка при установке phpMyAdmin

mark2010
MySQL работает, значит проблема в библиотеке связывающей PHP и MySQL.

Если все библиотеки PHP из одного дистрибутива, проверьте прописан ли путь к корню PHP в PATH и стоит ли он там перед MySQL. Поищите в системе дубль библиотеки libmysql.dll, которая должна быть в корне PHP и в каталоге bin у MySQL. Если найдете дубль в системном каталоге, вроде C:\Windows, попробуйте переименовать библиотеку и перезагрузить компьютер.

Есть еще один способ.
Поставьте Process Explorer http://technet.microsoft.com/en-us/sysi … 96653.aspx
Нажмите Ctrl+F и введите libmysql. Библиотека должна быть из корня PHP и родитель у нее будет процесс httpd.exe

6

Re: Непонятная ошибка при установке phpMyAdmin

Hanut
libmysql в Process Explorer нет вообще. У меня PHP работает как модуль к Apache, поэтому такого процесса тоже быть не может.
У меня вопрос - как может быть проблема в libmysql, если сама mysql работает как часы? Да и phpMyAdmin отображает стартовую страницу. Не работают
только операции после логина. Что там происходит после того как я введу свои реквизиты и нажму на кнопку "ОК"? Где это посмотреть? К каким ресурсам обращается phpMyAdmin? Вы допускаете, что эта проблема может быть вызвана операционкой Windows 7? Прошу прощения за кипу вопросов smile просто реально первый раз столкнулся с этим.

7

Re: Непонятная ошибка при установке phpMyAdmin

mark2010
Важной является ошибка выводимая скриптом.
<?php
echo mysql_connect('localhost', 'login', 'password') or die(mysql_error());
?>

Она говорит о том, что PHP, как клиент (библиотека libmysql.dll в корне PHP - это клиент) не может подключиться к серверу. Сервер MySQL работает,  что видно из проверки в командной строке, значит проблема в клиентской библиотеке PHP.

Подключение, как модуль - это вот эта строка в httpd.conf:
LoadModule php5_module "C:/php/php5apache2_2.dll"
При таком подключении библиотека libmysql.dll будет подгружаться к процессу httpd.exe. Если ее нет, значит PHP не настроен.

Запустите phpinfo и посмотрите откуда читается конфигурационный файл PHP (директива Loaded Configuration File).
<?php phpinfo(); ?>
Там же вы увидите загруженные расширения PHP.

8

Re: Непонятная ошибка при установке phpMyAdmin

Добрый день, Hanut

У меня конкретные вопросы. Запустил Process Explorer - там примерно следующее - процесс httpd.exe и он же родитель у этого процесса. MySQL запущен как служба в виде процесса mysqld.exe. Родительский процесс для него - services.exe, что логично (запущен как сервис). Помимо этого как самостоятельный процесс запущен ApacheMonitor.exe. Но мне от этого не легче sad
Что самое интересное - функция mysql_connect существует! проверено соответствующим скриптом.

Далее. Файл libmysql.dll существует и находится по пути C:\Windows\System32. Команда regsvr32 C:\Windows\System32\libmysql.dll дала следующее: "Модуль libmysql.dll загружен, но точка входа в процедуру DllRegisterServer не найдена. Грубо говоря, это не COM-сервер. Ну и ладно.

Самый главный вопрос - что с этим файлом делать, чтобы всё заработало?
Отвечая на Ваш вопрос про настройку PHP - строка с расширением раскомментирована (extension=php_mysql.dll), путь к расширениям прописан корректно, phpinfo() выдаёт корректную информацию про MySQL. Т.е. здесь всё нормально. Функция mysql_connect() существует, но не срабатывает.

9

Re: Непонятная ошибка при установке phpMyAdmin

mark2010
Вероятно библиотека libmysql.dll из C:\Windows\System32 конфликтует с PHP, так как не является принадлежащей дистрибутиву PHP. Переименуйте эту библиотеку во что-то вроде tmp_libmysql.dll и перезагрузите компьютер. После перезагрузки библиотека libmysql.dll должна загрузиться из корня PHP и все должно заработать.

Вопрос только в том, какая программа положила эту библиотеку в каталог C:\Windows\System32 и как она теперь будет работать. До сих пор такое разбрасывание библиотек наблюдалось за Dreamweaver.

10

Re: Непонятная ошибка при установке phpMyAdmin

Hanut
Сделал всё, как вы сказали. Не работает sad Это может быть баг PHP?

11

Re: Непонятная ошибка при установке phpMyAdmin

mark2010
libmysql.dll так и не появилась в Process Explorer-е? Попробуйте поискать еще ее дубли в системе.

Попробуйте этот дистрибутив: http://lv.php.net/get/php-5.2.13-Win32. … m/a/mirror

12

Re: Непонятная ошибка при установке phpMyAdmin

В общем это...
Установил я предлагаемый вами дистрибутив. Прописал в переменную PATH пути к PHP и к папке расширений PHP. Вроде всё работает, но как только я пытаюсь получить доступ к странице, которая требует MySQL, появляется ошибка в Firefox "Во время загрузки страницы соединение с сервером было сброшено".

М? sad

13

Re: Непонятная ошибка при установке phpMyAdmin

Ура! всё получилось!
Проблема была в либе libmysql.dll, которая поставлялась с mysql. После переименования и перезагрузки компьютера всё заработало! smile

14

Re: Непонятная ошибка при установке phpMyAdmin

mark2010
Вы переименовали libmysql.dll находящуюся в каталоге bin установочной директории MySQL?

Если да, то лучше вернуть ее, так как она используется консолью mysql.

В PATH путь к PHP должен быть прописан перед MySQL, тогда libmysql.dll будет подгружаться из корневого каталога PHP. (После внесения изменений в PATH, перезагрузите компьютер).