Algumas pessoas estão se deparando com o seguinte erro em seus projetos PHP + MySQL:

Não foi possível conectar no servidor MySQL:
mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

Isso acontece ao seu utilizar as versões mais novas do PHP – 5.3 +, com uma versão mais antiga do MySQL.

O problema é que o driver mysqlnd não aceita o OLD_PASSWORD.

Para contornar a situação, é simples. Basta executar no servidor:

SET PASSWORD FOR ‘usuario’@’host’ = OLD_PASSWORD(‘senha’);

Ou entre no modo console do MySQL e digite:

mysql -u root -p senha_do_root

SET PASSWORD = PASSWORD(‘senha_do_root’);

// Comente!

comentários