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

Форум MySQL

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

 

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

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

тема: Ошибка при соединении с удаленной базой
 
 автор: ck   (04.04.2006 в 13:02)   письмо автору
 
 

При попытке установить соединение с сервером MySQL, находящемся на удаленном хосте получаю следующее:

Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /home/litstyl0/public_html/includes/functions.php on line 3

Сама база позволяет соединение с удаленки. В чем здесь дело? Вопрос срочный. Большое спасибо всем ответившим.

   
 
 автор: cheops   (04.04.2006 в 13:33)   письмо автору
 
   для: ck   (04.04.2006 в 13:02)
 

Удалённый сервер ваш или не ваш (проблема в старом формате пароля для этой учётной записи)?

   
 
 автор: ck   (04.04.2006 в 13:37)   письмо автору
 
   для: cheops   (04.04.2006 в 13:33)
 

Сервер с БД - наш (виртуальный). С сайтом - нет. А каким может быть формат пароля? Там только цифры.

   
 
 автор: cheops   (04.04.2006 в 13:39)   письмо автору
 
   для: ck   (04.04.2006 в 13:37)
 

Вы пользователя для удалённой работы как создавали?

   
 
 автор: ck   (04.04.2006 в 13:43)   письмо автору
 
   для: cheops   (04.04.2006 в 13:39)
 

Знаком %. Сама схема работает точно. Мне уже доводилось здесь создавать базы с доступом с любого хоста. И это работало. Но хост сайта был другим.

   
 
 автор: Trianon   (04.04.2006 в 14:26)   письмо автору
 
   для: ck   (04.04.2006 в 13:43)
 

Имелось в виду, через какой клиент осуществлялось подключение при создании пользователей и назначении паролей.
Это проблема отсутствия совместимости паролей в новом формате (сформированных через новые клиенты) и старых клиентов.

   
 
 автор: cheops   (04.04.2006 в 15:57)   письмо автору
 
   для: Trianon   (04.04.2006 в 14:26)
 

Вероятно на хосте-клиенте PHP скомпилирован с поддержкой MySQL версии 4.0...

   
 
 автор: Trianon   (04.04.2006 в 16:11)   письмо автору
 
   для: cheops   (04.04.2006 в 15:57)
 

...как это обычно и бывает при работе через mysql_* функции.
Непонятно другое. Каким макаром там пароль оказался в новом формате.
Хост-провайдер, когда пароли дает, обычно таких промахов не делает.
Видимо с базой общались напрямую.

   
 
 автор: cheops   (04.04.2006 в 22:05)   письмо автору
 
   для: Trianon   (04.04.2006 в 16:11)
 

Нет, почему же, если удлаённый сервер ориентирован на MySQL 4.1, а тот сервер с которого идёт обращение на 4.0 - это вполне может быть...

   
 
 автор: Trianon   (04.04.2006 в 22:10)   письмо автору
 
   для: cheops   (04.04.2006 в 22:05)
 

>Нет, почему же, если удлаённый сервер ориентирован на MySQL
т.е. сервер БД
>4.1, а тот сервер с которого идёт обращение на 4.0 - это
т.е. апач с PHP-клиентом
>вполне может быть...
а хостер не знает, где у него что? Его же пользователи в мелкий венигрет покрошат.

   
 
 автор: ck   (05.04.2006 в 12:32)   письмо автору
 
   для: Trianon   (04.04.2006 в 22:10)
 

Действительно, версия MySQL на сервере БД - 4.1.15, а на хосте Агавы (откуда производится подключение) - 4.0.18, - под него, вероятно, и выстроен PHP.
Хм. Т.е. проблема решению не подлежит?

   
 
 автор: Trianon   (05.04.2006 в 14:44)   письмо автору
 
   для: ck   (05.04.2006 в 12:32)
 

Ну почему не подлежит?
Решения приводятся в FAQ мануала (ссылка в реплике (Trianon (04.04.2006 в 14:26))
Вот, например, одно из них: заменить версию пароля на более старую:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
    -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;

   
 
 автор: cheops   (05.04.2006 в 14:53)   письмо автору
 
   для: Trianon   (05.04.2006 в 14:44)
 

Как альтернатива
mysql> SET PASSWORD FOR
    -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

   
 
 автор: ck   (05.04.2006 в 15:02)   письмо автору
 
   для: Trianon   (05.04.2006 в 14:44)
 

Простите, но мне не доводилось сталкиваться добвалять или изменять пользователей на SQl. Не могли бы вы привести этот код с примерами подставленных переменных? Большое спасибо.

   
 
 автор: Trianon   (05.04.2006 в 15:11)   письмо автору
 
   для: ck   (05.04.2006 в 15:02)
 


SET PASSWORD FOR 'имя_пользователя'@'имя_сервера_БД' = OLD_PASSWORD('новый_пароль'); 

   
 
 автор: ck   (05.04.2006 в 16:44)   письмо автору
 
   для: Trianon   (05.04.2006 в 15:11)
 

Техподдерживатели нашего хостера боятся выполнять этот запрос, утверждая, что это грозит нпредсказуемыми последствиями для всего серера БД.

   
 
 автор: Trianon   (05.04.2006 в 16:54)   письмо автору
 
   для: ck   (05.04.2006 в 16:44)
 

Техподдерживатели вашего хостера могли бы и написать краткий пример подключения к БД на языке PHP, который бы работал на их сервере.
В конце концов, это же они Вам пароль выдали, которым Вы не можете воспользоваться?

   
 
 автор: ck   (05.04.2006 в 17:22)   письмо автору
 
   для: Trianon   (05.04.2006 в 16:54)
 

Когда клиент на их сервере, все работает. Они клянут агаву).

   
 
 автор: Trianon   (05.04.2006 в 17:28)   письмо автору
 
   для: ck   (05.04.2006 в 17:22)
 

Тогда попытайтесь убедить их, что предложенный способ затронет только Ваш вход. В конце концов старый формат пароля лишь ненамного слабее нового, а привилегий он больших, чем к Вашей базе дать не сможет.

Либо попытайтесь убедить агаву проапгрейдить клиент.
А так Вы застряли меж двух огней.

   
Rambler's Top100
вверх

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