sábado, 31 de janeiro de 2015

Corrigindo o erro "old_password" no MySQL

Olá galera,

Recentemente precisei migrar um sistema feito com Laravel 3.2 para um servidor com PHP 5.5.9. Antes de realizar a migração, para quem não sabe, é necessário fazer uns ajustes e podem ser conferidos no link http://www.codegeo.com.br/2014/05/corrigindo-conflito-do-yield-do-laravel.html.

Com as correções feitas, surgiu o seguinte erro: PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password].

O problema é causado devido ao novo formato para senha do banco que é de 41 bytes ao invés do formato antigo que é de 16.

Execute os comandos abaixo no banco que deseja alterar a senha. Esse procedimento pode ser feito diretamente no MySQL(terminal), MySQL Workbench, PHPMyAdmin ou qualquer outro da sua preferência.

    SET SESSION old_passwords=0;
    SET PASSWORD = PASSWORD('senha_do_seu_banco');
  

Na linha 1, desativamos o old_passwords para a sua session.

Na linha 2, alteramos a senha.

OBS: Os comandos devem ser executados juntos caso contrário não vai funcionar.

Espero que a dica seja útil para quem se deparou com o mesmo problema.

Um grande abraço e até a próxima.

3 comentários:

  1. Após 4 dias procurando uma solução para o meu problema, por um acaso cai aqui e deu tudo certo muito obrigado!

    ResponderExcluir
    Respostas
    1. Olá Dennis,

      Que bom que a dica serviu para resolver seu problema. Sempre procuro colocar no blog dicas sobre coisas não muito triviais.

      Grande abraço

      Excluir