Spec-Zone .ru
спецификации, руководства, описания, API
|
Текущая реализация протокола аутентификации использует алгоритм хеширования пароля, который является несовместимым с используемым более старым (пред4.1) клиенты. Попытки соединиться с 4.1 или более новым сервером с клиентом старшего возраста могут перестать работать со следующим сообщением:
shell> mysql
Client does not support authentication protocol requestedby server; consider upgrading MySQL client
Чтобы иметь дело с этой проблемой, предпочтительное решение должно обновить все клиентские программы, чтобы использовать 4.1.1 или более новую клиентскую библиотеку. Если это не возможно, используйте один из следующих подходов:
Чтобы соединиться с сервером с пред4.1 клиентскими программами, используйте учетную запись, у которой все еще есть pre-4.1-style пароль.
Сбросьте пароль к пред4.1 стилям для каждого пользователя, который должен
использовать пред4.1 клиентских программы. Это может быть сделано, используя SET PASSWORD
оператор и OLD_PASSWORD()
функция. Также необходимо сначала гарантировать, что
плагин аутентификации для учетной записи mysql_old_password
:
mysql>UPDATE mysql.user SET plugin = 'mysql_old_password'
mysql>WHERE User = '
mysql>some_user
' AND Host = 'some_host
';FLUSH PRIVILEGES;
mysql>SET PASSWORD FOR
->'
some_user
'@'some_host
' = OLD_PASSWORD('newpwd
');
Замените паролем, который Вы хотите использовать для"newpwd
"в предыдущем
примере. MySQL не может сказать Вам, каков исходный пароль был, таким образом, Вы должны будете
выбрать новый.
Скажите серверу использовать более старый алгоритм хеширования пароля по умолчанию:
Запустите mysqld с old_passwords
системный набор переменной к 1.
Присвойте пароль старого формата каждой учетной записи, которой обновили ее пароль к более длинным 4.1 форматам. Можно идентифицировать эти учетные записи со следующим запросом:
mysql>SELECT Host, User, Password FROM mysql.user
->WHERE LENGTH(Password) > 16;
Для каждой записи учетной записи, выведенной на экран запросом, используйте Host
и User
значения и
присваивают пароль, используя один из методов, описанных ранее.
Client does not support authentication protocol
ошибка также может произойти, если
многократные версии MySQL устанавливаются, но клиентские программы динамически соединяются и соединяются с более
старой библиотекой. Удостоверьтесь, что клиенты используют новую версию библиотеки, с которой они являются
совместимыми. Процедура, чтобы сделать это будет зависеть от Вашей системы.
mysql
расширение не поддерживает протокол аутентификации в MySQL 4.1.1
и выше. Это - истина независимо от используемой версии PHP. Если Вы хотите использовать mysql
расширение с MySQL 4.1 или более новый, Вы, возможно, должны следовать
за одной из опций, обсужденных выше для того, чтобы сконфигурировать MySQL, чтобы работать со старыми
клиентами. mysqli
расширение (обозначает "MySQL, Улучшенный";
добавленный в PHP 5) является совместимым с улучшенным паролем, хеширующим используемый в MySQL 4.1 и выше,
и никакая специальная конфигурация MySQL не должна быть сделанной, чтобы пользоваться этой клиентской
библиотекой MySQL. Для получения дополнительной информации о mysqli
расширение,
см.
Для дополнительного фона на хеширующем пароле и аутентификация, см. Раздел 6.1.2.4, "Пароль, Хеширующий в MySQL".