foolly Опубликовано 21 Марта 2007 Жалоба Поделиться Опубликовано 21 Марта 2007 При попытке установить форум с 4 мускулом, выдёт ошибку что невозможно подключиться к базе: типа у юзера мало админских прав или что-то такое.Помню кто-то кидал ссылки на решение этой проблемы, но в поиске так и не нашол, да и ответа мне в той теме толкового не дали. Очень хочется, чтобы подробно объяснили что надо сделать с мускулом чтобы исправить эту ошибку Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Hugo Weaving Опубликовано 21 Марта 2007 Жалоба Поделиться Опубликовано 21 Марта 2007 (изменено) Случайно не пишет (mysql_connect()) Client does not support authentication protocol requested by server; consider upgrading MySQL client. Вы не имеете прав подключения к серверу? Изменено 21 Марта 2007 пользователем Hugo Weaving Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 foolly Опубликовано 21 Марта 2007 Автор Жалоба Поделиться Опубликовано 21 Марта 2007 именно это, хотя когда подключаюсь к базе через клиент(EngInSite MySQL Client) то захожу нормально Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Hugo Weaving Опубликовано 21 Марта 2007 Жалоба Поделиться Опубликовано 21 Марта 2007 (изменено) Начиная с версии 4.1, в MySQL используется новый протокол аутентификации. В новом протоколе алгоритм хеширования данных аутентифмкации отличается от алгоритма более ранних версий сервера MySQL. По сути вся проблема сводится к тому, что хеш пароля”mypass” в версиях старше 4.1 (т.е. 4.1.*, 5.0.* и т.д.) имеет вид *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 (строка длиннее 41 байта), и тот же пароль ”mypass” в версиях младше 4.1. (т.е. 4.0.*, 3.23.* и т.д.) имеет вид 6f8c114b58f2ce9e (строка 16 байт) Теперь возникает ситуация. Вы обновляете сервер до версии старше 4.1., а клиент у Вас остается старый. Вы все правильно установили, сервер нормально запустился. Вы запускаете клиента, вводите логин и пароль соответствующей учетной записи, нажимаете Enter, Ваш СТАРЫЙ клиент хеширует данные авторизации по СТАРОМУ алгоритму и передает их на сервер. Сервер принимает эти данные и сранивает их с данными из таблицы mysql.user. В результате такого сравнения сервер видит, что хеши паролей не совпадают (всего 16 байт, вместо ожидаемых, как минимум, 41-го байта). Вследствие чего, сервер выдает вполне информативное сообщение: Client does not support authentication protocol requested by server; consider upgrading MySQL client Изменено 21 Марта 2007 пользователем Hugo Weaving Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 foolly Опубликовано 21 Марта 2007 Автор Жалоба Поделиться Опубликовано 21 Марта 2007 Посмотрел сейчас так и есть, и как мне теперь пароль писать?в таком виде *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Hugo Weaving Опубликовано 21 Марта 2007 Жалоба Поделиться Опубликовано 21 Марта 2007 (изменено) Забыл написать взято с: http://phpclub.ru/faq/wakka.php?wakka=MySQLOldPassword. Там и ищи решение. ps. у меня была такая же проблема при установки форума vBulletin для одного из университетов, после описанного решения проблема исчезла. Изменено 21 Марта 2007 пользователем Hugo Weaving Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 foolly Опубликовано 21 Марта 2007 Автор Жалоба Поделиться Опубликовано 21 Марта 2007 Прочив это я конечно немного понял, но всёже мозг у меня не под это явно заточен ):Немоглибы вы описать в кратце что нужно сделать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Hugo Weaving Опубликовано 21 Марта 2007 Жалоба Поделиться Опубликовано 21 Марта 2007 (изменено) Чтобы решить возникшую проблему, можно пойти по одному из следующих путей: 1. Обновить всех клиентов (их библиотеки) до версии 4.1.1 или старше. Этот вариант идеальный, но не всегда подходит, потому что не для всех приложений существуют соответствующие обновленные библиотеки. 2. Создать для «старых» клиентов учетные записи, которые хранят хеш пароля в старом формате. 3. Для каждой учетной записи задать хеш пароля в старом формате. Это делается с помощью одной из двух конструкции:SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd'); UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') WHERE Host = 'some_host' AND User = 'some_user'; FLUSH PRIVILEGES;Задать серверу в файле конфигурации (my.ini, my.cnf) директиву, которая указывает серверу использовать старый алгоритм хеширования пароля. Эта директива:-- old-passwords optionПри этом не забудь, что нужно будет конвертировать хеши паролей из нового формата в старый формат. Это нужно будет сделить для всех учетных записей, у которых хеш пароля уже хранится в новом формате.Для того, что бы выбрать пользователей, у которых хеши паролей хранятся в новом формате нужно написать запрос вида:SELECT Host, User, Password FROM mysql.user WHERE LENGTH(Password) > 16;Далее, для каждого пользователя в полученной таблице ты конвертируешь пароль любым из вариантов, предложенным пунктом выше. © Изменено 21 Марта 2007 пользователем Hugo Weaving Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 foolly Опубликовано 21 Марта 2007 Автор Жалоба Поделиться Опубликовано 21 Марта 2007 эм...я хотел чтобы вы вот именно вот это описали простым языком, эх... ничерта непонимаю в этом ): Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 foolly Опубликовано 22 Марта 2007 Автор Жалоба Поделиться Опубликовано 22 Марта 2007 так ничего и непонял Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 foolly Опубликовано 22 Марта 2007 Автор Жалоба Поделиться Опубликовано 22 Марта 2007 единсвенное чего добился своими силами Внимание! Указанные ниже ошибки должны быть обязательно исправлены перед тем, как продолжить! Пожалуйста, вернитесь назад и попробуйте снова! CREATE TABLE pcw_admin_logs ( id bigint(20) NOT NULL auto_increment, act varchar(255) default NULL, code varchar(255) default NULL, member_id int(10) default NULL, ctime int(10) default NULL, note text, ip_address varchar(255) default NULL, PRIMARY KEY (id) ) TYPE=MyISAM; User 'fo011y' has exceeded the 'max_questions' resource (current value: 99) выполнил вот это mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('FUCKIN_PW') WHERE Host = 'loc alhost' AND User = 'fo011y'; FLUSH PRIVILEGES; может всётаки ктонибудь подскажит как это сделать без заморочек?(т.е. своими словами) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 foolly Опубликовано 25 Марта 2007 Автор Жалоба Поделиться Опубликовано 25 Марта 2007 Да помогите же Попытка перваяmysql> SELECT 85.30.194.172, fo011y, mypass FROM mysql.user WHERE LENGTH(mypass) > 16; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.194.172, fo011y, mypass FROM mysql.user WHERE LENGTH(mypass) > 16' at line 1 Попытка втораяmysql> SELECT localhost, fo011y, 051288 FROM mysql.user WHERE LENGTH(051288) > 1 6; ERROR 1054 (42S22): Unknown column 'localhost' in 'field list' ЗЫ: такие блин все умные, что даже ответить нормально никто не может Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
foolly
При попытке установить форум с 4 мускулом, выдёт ошибку что невозможно подключиться к базе: типа у юзера мало админских прав или что-то такое.
Помню кто-то кидал ссылки на решение этой проблемы, но в поиске так и не нашол, да и ответа мне в той теме толкового не дали.
Очень хочется, чтобы подробно объяснили что надо сделать с мускулом чтобы исправить эту ошибку
Ссылка на комментарий
Поделиться на других сайтах
11 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.