Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не работает связка mysql с apache и php
 
 автор: fox2011   (14.01.2011 в 13:30)   письмо автору
 
 

не работает проверочный код для mysql:

<?php
$dblocation = "127.0.0.1";
$dbname = "test";
$dbuser = "root";
$dbpasswd = "";

$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx)
{
echo "<p>К сожалению, не доступен сервер mySQL</p>";
exit();
}
if (!@mysql_select_db($dbname,$dbcnx) )
{
echo "<p>К сожалению, не доступна база данных</p>";
exit();
}
$ver = mysql_query("SELECT VERSION()");
if(!$ver)
{
echo "<p>Ошибка в запросе</p>";
exit();
}
echo mysql_result($ver, 0);
?>

В броузере выдает следующую ошибку:

Warning: main(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for '2.0/no DST' instead in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 7 Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 7

Что это может быть?
При этом связка apache php функционирует нормально...

  Ответить  
 
 автор: cheops   (14.01.2011 в 13:34)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:30)
 

В php.ini следующая строчка раскомментирована (убрана ли точка с запятой перед ней)?
extension=php_mysql.dll

PS После изменения конфигурационного файла php.ini следует перезагрузить Apache.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 13:40)   письмо автору
 
   для: cheops   (14.01.2011 в 13:34)
 

да

  Ответить  
 
 автор: cheops   (14.01.2011 в 13:41)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:40)
 

А в отчете функции phpinfo() упоминается расширение mysql?
<?php
  phpinfo
();
?>

  Ответить  
 
 автор: fox2011   (14.01.2011 в 13:47)   письмо автору
 
   для: cheops   (14.01.2011 в 13:41)
 

в разделе mysqlnd выводиться версия и т.д
кстати эта же ошибка выдается при выполнении данного кода в раздеде date

  Ответить  
 
 автор: cheops   (14.01.2011 в 13:49)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:47)
 

Тут на самом деле две ошибки: предупреждение о невыставленном часовом поясе и невозможности обратиться к mysql_connect().

  Ответить  
 
 автор: fox2011   (14.01.2011 в 13:50)   письмо автору
 
   для: cheops   (14.01.2011 в 13:49)
 

так что же сделать, чтоб заработало

  Ответить  
 
 автор: cheops   (14.01.2011 в 13:52)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:47)
 

Хм... а версия PHP какая? Раздел называется mysqlnd, а не mysql?

Посмотрите в php.ini какое значение принимает директива extension_dir?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 13:56)   письмо автору
 
   для: cheops   (14.01.2011 в 13:52)
 

PHP Version 5.3.4
Version mysqlnd 5.0.7-dev - 091210 - $Revision: 304625 $

  Ответить  
 
 автор: cheops   (14.01.2011 в 13:35)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:30)
 

Первое предупреждение, кстати, связано с настройкой часового пояса, чтобы убрать его следует явно задать часовой пояс, например, так
<?php
  
// Выставляем часовой пояс
  
@date_default_timezone_set("Europe/Moscow");
?>

  Ответить  
 
 автор: fox2011   (14.01.2011 в 13:41)   письмо автору
 
   для: cheops   (14.01.2011 в 13:35)
 

куда вставить этот код?

  Ответить  
 
 автор: cheops   (14.01.2011 в 13:42)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:41)
 

В этом скрипте все-равно куда, можно вначало, можно вконец (главное, чтобы до вызова функций времени и даты, но у вас их тут нет).

  Ответить  
 
 автор: fox2011   (14.01.2011 в 13:50)   письмо автору
 
   для: cheops   (14.01.2011 в 13:42)
 

теперь выдает вот такую ошибку:

Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 8
не может распознать функцию?

  Ответить  
 
 автор: cheops   (14.01.2011 в 13:53)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:50)
 

У вас расширение php_mysql.dll не подцепилось, скорее всего ядро не видит библиотеки расширения.

Посмотрите в php.ini какое значение принимает директива extension_dir?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 13:55)   письмо автору
 
   для: cheops   (14.01.2011 в 13:53)
 

extension_dir="C:/Program Files/PHP/ext"

  Ответить  
 
 автор: cheops   (14.01.2011 в 13:56)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:55)
 

Найдите в "C:/Program Files/PHP/ библиотеку libmysql.dll и скопируйте её в C:/Windows/system32/, после чего перезагрузите Apache. Что-нибудь изменилось?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 13:59)   письмо автору
 
   для: cheops   (14.01.2011 в 13:56)
 

по данному пути такой библиотеки нет!

  Ответить  
 
 автор: cheops   (14.01.2011 в 14:01)   письмо автору
 
   для: fox2011   (14.01.2011 в 13:59)
 

Хм... вообще libmysql.dll нет? А поищите её по компьютеру - она где-нибудь, кроме как в папке с MySQL существует?

PS Вообще нужна бы именно та библиотека libmysql.dll, которая подходит к вашему php_mysql.dll.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 14:09)   письмо автору
 
   для: cheops   (14.01.2011 в 14:01)
 

на диске С по следующим путям:
C:\Program Files\MySQL\MySQL Server 5.5\lib
C:\WebServers\usr\local\php5

  Ответить  
 
 автор: cheops   (14.01.2011 в 14:13)   письмо автору
 
   для: fox2011   (14.01.2011 в 14:09)
 

Хм... попробуйте скачать PHP 5.2.17 и установить её, там в корне должна быть libmysql.dll, при помощи которой php_mysql.dll соединяется с MySQL-сервером. Дело в том, что к вашей php_mysql.dll подойдет не всякая библиотека libmysql.dll.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 14:18)   письмо автору
 
   для: cheops   (14.01.2011 в 14:13)
 

А с чем это связано? и где можно найти нужную библиотеку, потму что переставлять php не хотелось бы? и будет ли взаимодействовать более поздняя версия php с mysql server

  Ответить  
 
 автор: cheops   (14.01.2011 в 14:24)   письмо автору
 
   для: fox2011   (14.01.2011 в 14:18)
 

Вообще она должна быть в дистрибутиве. Её отсутствие, связано скорее всего с тем, что вроде как доступ к MySQL теперь должен находиться к ядре PHP. Т.е. теперь все должно сводиться к тому, что вы снимаете комментарий напротив расширения php_mysql.dll в php.ini и вам не нужно следить за дополнительными библиотеками. Однако, на практике мне так и не удалось запустить это расширение в новых версиях дистрибутива. Лично я, предпочел пока работать с более старыми дистрибутивами, пока ситуация не прояснится.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 14:27)   письмо автору
 
   для: cheops   (14.01.2011 в 14:24)
 

Переустанавливать только php или mysql тоже? и укажите, пожалуйста, ссылки, где можно взять более старые версии php и mysql?

  Ответить  
 
 автор: cheops   (14.01.2011 в 14:37)   письмо автору
 
   для: fox2011   (14.01.2011 в 14:27)
 

Нет, MySQL не нужно - она ожидает соединение по сетевому порту и с ней проблем не будет. Попробуйте сначала версию 5.2 со страницы http://windows.php.net/download/, только версию выбирайте потяжелее со всеми библиотеками и VC6, а не VC9.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 14:40)   письмо автору
 
   для: cheops   (14.01.2011 в 14:37)
 

а какую лучше выбрать VC6 x86 Thread Safe или VC6 x86 Non Thread Safe вроде почти одинаковые по размеру? В чем отличие у них?

  Ответить  
 
 автор: cheops   (14.01.2011 в 14:45)   письмо автору
 
   для: fox2011   (14.01.2011 в 14:40)
 

Если PHP устанавливаете как модуль, то выбирайте Thread Safe, если как CGI-приложение, то - Non Thread Safe

  Ответить  
 
 автор: fox2011   (14.01.2011 в 14:49)   письмо автору
 
   для: cheops   (14.01.2011 в 14:45)
 

старую версию php лучше удалить или можно оставить?

  Ответить  
 
 автор: cheops   (14.01.2011 в 14:51)   письмо автору
 
   для: fox2011   (14.01.2011 в 14:49)
 

На всякий случай, лучше удалить.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 15:05)   письмо автору
40.5 Кб
 
   для: cheops   (14.01.2011 в 14:51)
 

переустановил php на версию 5.2.17 , но ошибка осталась! что делать? также, при вызове функции phpinfo() нет данных про mysql!!! прикрепляю html файл срезультатами функции phpinfo()

  Ответить  
 
 автор: cheops   (14.01.2011 в 15:20)   письмо автору
 
   для: fox2011   (14.01.2011 в 15:05)
 

Хм... а почему у вас extension_dir принимает значение php_mysql.dll - там должен быть путь к директории с библиотеками расширений? Если не сложно прикрепите свой php.ini.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 15:22)   письмо автору
70.2 Кб
 
   для: cheops   (14.01.2011 в 15:20)
 

вот php.ini!

  Ответить  
 
 автор: cheops   (14.01.2011 в 15:48)   письмо автору
 
   для: fox2011   (14.01.2011 в 15:22)
 

А откуда у вас в секции [PHP_MYSQL] строка?
extension_dir=php_mysql.dll

Это неправильно, здесь должен быть путь к директории с расширениями, такими как php_mysql.dll

  Ответить  
 
 автор: fox2011   (14.01.2011 в 15:55)   письмо автору
 
   для: cheops   (14.01.2011 в 15:48)
 

поменял на extension_dir=C:\Program Files\PHP\ext
в итоге получил следующее:

Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: NO) in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 8
К сожалению, не доступен сервер mySQL

  Ответить  
 
 автор: cheops   (14.01.2011 в 16:11)   письмо автору
 
   для: fox2011   (14.01.2011 в 15:55)
 

Отлично, это уже ответ MySQL.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 16:13)   письмо автору
 
   для: cheops   (14.01.2011 в 16:11)
 

а что дальше, хотелось бы увидеть результат работы данного кода!

  Ответить  
 
 автор: cheops   (14.01.2011 в 16:15)   письмо автору
 
   для: fox2011   (14.01.2011 в 16:13)
 

Давайте теперь с логином и паролем разбираться. MySQL сообщает, что они не подходят.

  Ответить  
 
 автор: cheops   (14.01.2011 в 16:12)   письмо автору
 
   для: fox2011   (14.01.2011 в 15:55)
 

У вас MySQL запущена? Вы не меняли пароль к root во время установки?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 16:18)   письмо автору
 
   для: cheops   (14.01.2011 в 16:12)
 

нет не менял,оставил поля пустыми вроде

  Ответить  
 
 автор: cheops   (14.01.2011 в 16:21)   письмо автору
 
   для: fox2011   (14.01.2011 в 16:18)
 

Запустите MySQL Command Line Client - он принимает пустой пароль?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 16:31)   письмо автору
 
   для: cheops   (14.01.2011 в 16:21)
 

как поменять пароль на root

  Ответить  
 
 автор: cheops   (14.01.2011 в 16:35)   письмо автору
 
   для: fox2011   (14.01.2011 в 16:31)
 

Хм... пароль лучше потом менять, когда убедимся в том, что связка работает как надо. Тем более, что для смены потребуется старый пароль, или перезапуск MySQL без привилегий (а это лучше обсудить в отдельной теме, так как эта уже очень разрослась).

  Ответить  
 
 автор: fox2011   (14.01.2011 в 16:32)   письмо автору
 
   для: cheops   (14.01.2011 в 16:21)
 

это служба?

  Ответить  
 
 автор: cheops   (14.01.2011 в 16:34)   письмо автору
 
   для: fox2011   (14.01.2011 в 16:32)
 

Это утилитка, получить доступ к ней можно через Пуск и Программы, выбрав папку MySQL.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 16:41)   письмо автору
115.1 Кб
 
   для: cheops   (14.01.2011 в 16:34)
 

запустил MySQL Instance Configuration Wizard в результате получил следующее:

  Ответить  
 
 автор: cheops   (14.01.2011 в 16:45)   письмо автору
 
   для: fox2011   (14.01.2011 в 16:41)
 

Судя по всему пароль для root все-таки задан. У вас ведь сейчас все-равно никаких баз нет? Попробуйте снести MySQL и поставить заново.

  Ответить  
 
 автор: cheops   (14.01.2011 в 16:49)   письмо автору
32.1 Кб
 
   для: fox2011   (14.01.2011 в 16:41)
 

При установке, когда идет настройка, проверьте, чтобы эта страница выглядела как во вложении.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 17:02)   письмо автору
 
   для: cheops   (14.01.2011 в 16:49)
 

перустановил mysql ....
ошибка осталась:

Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: NO) in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 8

К сожалению, не доступен сервер mySQL

  Ответить  
 
 автор: cheops   (14.01.2011 в 17:05)   письмо автору
 
   для: fox2011   (14.01.2011 в 17:02)
 

А галку Modify Security Settings точно снимали?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 17:08)   письмо автору
 
   для: cheops   (14.01.2011 в 17:05)
 

ну конечно снимал! что дальше делать подскажите?

  Ответить  
 
 автор: cheops   (14.01.2011 в 17:10)   письмо автору
 
   для: fox2011   (14.01.2011 в 17:08)
 

А какую версию MySQL используете (до третьего знака)? Я сейчас скачаю её попытаюсь воспроизвести ситуацию.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 17:16)   письмо автору
 
   для: cheops   (14.01.2011 в 17:10)
 

устанавливал mysql-5.5.8-win32 версию по ссылке http://dev.mysql.com/downloads/mysql/

  Ответить  
 
 автор: cheops   (14.01.2011 в 17:25)   письмо автору
 
   для: fox2011   (14.01.2011 в 17:16)
 

Хорошо, я как раз её качаю - хочется посмотреть, что там наизменяли. Как установлю, отпишусь об результатах.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 17:25)   письмо автору
 
   для: cheops   (14.01.2011 в 17:25)
 

за ранее спасибо! буду ждать!

  Ответить  
 
 автор: cheops   (14.01.2011 в 17:53)   письмо автору
 
   для: fox2011   (14.01.2011 в 17:25)
 

Действительно дур дом какой-то, такое ощущение, что mysqld.exe вообще порт не слушает, сейчас попробую до него достучаться.

  Ответить  
 
 автор: cheops   (14.01.2011 в 18:03)   письмо автору
 
   для: fox2011   (14.01.2011 в 17:25)
 

Знаете, наверное лучше скачать версию MySQL 5.1.x или 5.0.x, например, отсюда http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.53-win32.msi. В этом дистрибутиве мало того, что создается несколько версий каталога данных, так еще и сервер не подает никаких сетевых признаков жизни. Мне mysqld-сервер так и не удалось расшевелить.

PS Правда у меня сервер выдает другую ошибку, он вообще хочет устанавливать соединение.

  Ответить  
 
 автор: cheops   (14.01.2011 в 18:11)   письмо автору
 
   для: fox2011   (14.01.2011 в 17:25)
 

1) Кстати, посмотрите файл my.ini в C:/Program Files/MySQL/, какое значение принимает директива datadir?
2) И какая у вас операционная система?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 18:17)   письмо автору
 
   для: cheops   (14.01.2011 в 18:11)
 

datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"
windows xp sp3

  Ответить  
 
 автор: cheops   (14.01.2011 в 18:18)   письмо автору
 
   для: fox2011   (14.01.2011 в 18:17)
 

А попробуте её изменить на C:/Program Files/MySQL/Data/ и перезагрузить MySQL. Ничего не изменилось?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 18:22)   письмо автору
344.5 Кб
 
   для: cheops   (14.01.2011 в 18:18)
 

теперь служба не запускается.
пишет следующее:

  Ответить  
 
 автор: cheops   (14.01.2011 в 18:24)   письмо автору
 
   для: fox2011   (14.01.2011 в 18:22)
 

Ага, вон он где, тогда вместо C:/Program Files/MySQL/Data/ впишите C:/Program Files/MySQL/MySQL Server 5.5/Data/

  Ответить  
 
 автор: fox2011   (14.01.2011 в 18:25)   письмо автору
 
   для: fox2011   (14.01.2011 в 18:22)
 

БОЛЬШОЕ СПАСИБО ВСЕ ЗАРАБОТАЛО!!!!!!!!!!!!!!!

  Ответить  
 
 автор: fox2011   (14.01.2011 в 18:26)   письмо автору
 
   для: fox2011   (14.01.2011 в 18:25)
 

выдает теперь версию mysql 5.5.8
Все отлично!))))

  Ответить  
 
 автор: cheops   (14.01.2011 в 18:28)   письмо автору
 
   для: fox2011   (14.01.2011 в 18:25)
 

Здорово!

PS Странно, что под Vista эта версия сервера не работает, надо будет поразбираться. А вообще если будет глючить, перебирайтесь на более старые версии - 5.5.8, слишком маленькая цифра и может содержать множество ошибок, когда треться цифра в версии приближается к 20 тогда уже можно работать практически не натыкаясь на глюки.

  Ответить  
 
 автор: Trianon   (14.01.2011 в 18:30)   письмо автору
 
   для: cheops   (14.01.2011 в 18:28)
 

> когда треться цифра в версии приближается к 20 тогда уже можно работать практически не натыкаясь на глюки.

какая занимательная эмпирика :))

Я так полагал, что работать можно, когда над второй цифрой появилось две помоложе :))

  Ответить  
 
 автор: cheops   (14.01.2011 в 18:35)   письмо автору
 
   для: Trianon   (14.01.2011 в 18:30)
 

Судя по прошлым версиям, в инсталяторах ошибки не исправляются. Поэтому следует быть готовым, что под Windows теперь MySQL будет создавать две версии каталога Data, один из которых будет рабочим, а другой нет.

>Я так полагал, что работать можно, когда над второй цифрой появилось две помоложе :))
Когда треться цифра достигает 20 тоже жить можно. Но они там все перебутозили на сайте, MySQL 5.0 и MySQL 5.1 сдали в архив. В общем скорее всего о былой надежности MySQL можно потихоньку забывать.

  Ответить  
 
 автор: fox2011   (14.01.2011 в 18:41)   письмо автору
 
   для: cheops   (14.01.2011 в 18:28)
 

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

  Ответить  
 
 автор: cheops   (14.01.2011 в 18:43)   письмо автору
 
   для: fox2011   (14.01.2011 в 18:41)
 

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

  Ответить  
 
 автор: fox2011   (14.01.2011 в 18:48)   письмо автору
 
   для: cheops   (14.01.2011 в 18:43)
 

хорошо !

  Ответить  
 
 автор: cheops   (14.01.2011 в 17:13)   письмо автору
 
   для: fox2011   (14.01.2011 в 17:08)
 

Да, и еще попробуйте запустить именно MySQL Command Line Client, она рядом с MySQL Instance Configuration Wizard должна быть и нажать Enter - какая реакция?

  Ответить  
 
 автор: fox2011   (14.01.2011 в 17:17)   письмо автору
 
   для: cheops   (14.01.2011 в 17:13)
 

такого нет!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования