MySQL: Client does not support authentication protocol



2011-04-09

Erro: Client does not support authentication protocol

O MySQL usa um protocolo de autenticação baseado em um algorítmo de hashing de senha que é incompatível com aquele usado por outros clientes. Se você atualizar o servidor para a versão 4.1, tentar se conectar a ele com um cliente mais antigo pode falhar com a seguinte mensagem:
shell> mysql Client does not support authentication protocol requested by server; consider upgrading MySQL client 
Para resolver este problema você deve fazer um dos seguintes:
  • Atualizar todos os progrmas clientes para usar a biblioteca cliente 4.1.1 ou mais nova.
  • Use uma conta com uma senha antiga ao conectar em clientes anteriores ao 4.1.
  • Reset o utilizador que precisa de um cliente anterior ao 4.1 para usar a senha antiga:
    mysql> UPDATE user SET Password = OLD_PASSWORD('mypass') -> WHERE Host = 'some_host' AND User = 'some_user'; mysql> FLUSH PRIVILEGES; 
  • Diga ao servidor para usar o algoritmo de hashing de senha antigo:
    1. Inicie o mysqld com --old-passwords.
    2. Defina a senha para todos os utilizadores que tenham senha longa. Você pode encontrar estes utilizadores com:
      SELECT * FROM mysql.user WHERE LEN(password) > 16; 
Para mais informações sobre hash de senha e autenticação, veja Seção 4.3.11, "Hashing de Senhas no MySQL 4.1".
Postar um comentário