Estranhamente, isso funcionou bem por um tempo, mas meu computador foi reiniciado recentemente e agora meus aplicativos php não funcionam:
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 [2000]
Eu vi que a solução era desligar old_passwords na configuração do mysql ... exceto que ela não estava ligada no meu my.cfg (a opção não estava presente e adicionando nada mudou) nem vai mudar no console:.
> SET SESSION old_passwords=FALSE;
ERROR 1231 (42000): Variable 'old_passwords' can't be set to the value of '0'
Eu tentei ver o hash da senha:
> select password('test');
+------------------+
| password('test') |
+------------------+
| 378b243e220ca493 |
+------------------+
E é curto. Não há nada que eu possa encontrar na net a respeito de por que isso acontece, os docs do mariadb dizem que ele deve ter 41 caracteres, mas não é e está quebrando todas as coisas do php 5.4.
Estou sem ideias antes de apenas dizer que esqueça e reinstalar um antigo php ou algo assim. Alguém mais viu isso? Idealmente, eu gostaria que as senhas usassem o novo formato de hash para que o php funcionasse.