Страница 1 из 1

Ошибка при коннекте к MySQL из PHP

Добавлено: 10 июн 2005, 13:56
Louie
При попытке открыть страницу в IE возникает ошибка:

mysql_pconnect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in D:\PHP\First Site\images.php on line 21

MySQL сервер версии 4.1.10a-nt
PHP версии 4.3.11
Apache Apache 2.0.53

Код, вызывающий ошибку:
$db = mysql_pconnect('localhost:3306', 'SireUser', 'reeris');

Пробовал под жтим пользователем логинится в MySQL Control Center - все нормально.
Пробовал без номера порта и под root'ом - не помогает.

В чем может быть причина?

Добавлено: 10 июн 2005, 15:16
Oscar
http://www.google.com/search?q=%22Clien ... rotocol%22

К сожалению это всё, что могу посоветовать.
Но, там есть страницы, на которых описаны подобные проблемы.

http://dev.mysql.com/doc/mysql/en/old-client.html
например

Добавлено: 10 июн 2005, 15:56
UUU
Кажется ошибка заключается в том, что старый (4 версия) ПХП использует короткий кеш для пароля, а мускуль 4 версии - длинный.
Должны быть патчи либо рекомендации, как завести и запаролить юзера в мускуле.
либо (кажется под виндой система?) в виндеус/систем32/ либмускуль.длл старая.

Добавлено: 10 июн 2005, 18:45
Louie
Спасибо откликнувшимся
либо (кажется под виндой система?) в виндеус/систем32/ либмускуль.длл старая.
Что интересно, что ни в папке WINDOWS, ни в папке WINNT нет ни одного файла в названии которого содержится mysql.

По ссылкам действительно описывается моя проблема, но непонятно, как "Upgrade all client programs to use a 4.1.1 or newer client library"?
Скачал 38 МГб дистрибутив mysql-4.1.12a-win32.zip, установил, но это не помогло.

Буду сносить и заново ставить MsSQL.

Добавлено: 14 июн 2005, 10:35
Louie
Спасибо всем, кто откликнулся!

Покопался. Помогло:
UPDATE mysql.user SET Password = OLD_PASSWORD('reeris')
WHERE Host = 'localhost' AND User = 'SiteUser';

Неприятно, конечно, чувствовать себя плохо защищенным, но... :)

Добавлено: 14 июн 2005, 16:32
UUU
Ты еще не со всеми плюхам 4 версии столкнулся.
Первое, с чем у меня были траблы, это то, что в 4 версии DateTimeStamp уже не слевок даты и времени, а выдается обыкновенный DateTime. Чтобы выдавался по старому, надо в селекте писать My_DateTimeStamp_field +1