rss
twitter
    Saiba o que estou fazendo, siga-me:)
Mostrando postagens com marcador Redes. Mostrar todas as postagens
Mostrando postagens com marcador Redes. Mostrar todas as postagens

Como autenticar clientes antigos nos Servidores MySQL 4.1.x ou superior...

Nunca pensei que uma atualização no meu servidor de banco de dados daria tantos problemas.
A versão 4.1.x do 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 mais antigos.
Uso um aplicativo openSource em casa, DBDesigner, para criar as tabelas e relacionamentos entre as mesmas.
Algum tempo atrás, andei dando uma reconfigurada nas opções de segurança do MySQL, e eu devo ter desabilitado a opção de compatibilidade com senhas velhas com isso.
Aí começou os problemas, o programinha não conectava mais no banco, porque ocorrera um erro de autenticação.
Instalei, desinstalei o software, e nada.
Ontem, fui instalar o sisteminha WikeMedia no pc, e não dava de jeito nenhum. Me chamou a atenção um aviso que falava de incompatibilidade de autenticação do PHP, com o MySQL 4.1.x.
Foi aí que me dei conta do que havia acontecido, conectei na base, fiz uma listagem de usuários, e as senhas estavam com 41 bytes de comprimento.
Eureca, aí estava o problema.
Nos clientes antigos, o hashing de senha gerado pelo banco, era de apenas 16 bytes.

E como fazer entao para diminuir o hashing de senhas?

SET PASSWORD FOR 'user'@'host' = OLD_PASSWORD('senha');

Sem mistério, não é mesmo? Se o erro continuar a persistir, faça uma listagem de usuários, e veja quantos usuários com o mesmo nome existem, com hosts diferentes.

Uma coisa interessante nisso tudo, é que eu nao tive problemas usando JAVA, deve ser porque uso uma das últimas versões do JDBC, e provavelmente o mesmo já vem com um cliente atualizado.

Grande abraço...