Hoy en una de esas configuraciones raras de MySql me apareció el siguiente error:

ERROR 1251: Client does not support authentication protocol
requested by server; consider upgrading MySQL client.

Qué hacer en ese caso? Dos opciones:

  1. Hacer un upgrade a MySql, lo cual no era factible porque necesitaba esa versión específica.
  2. Decirle a MySql que encripte la contraseña con un sistema anterior. Para esto existe OLD_PASSWORD.

El procedimiento para realizar este “cambio de encriptación” es relativamente simple, y lo describo a continuación:

xwing:~# mysql -u admin -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 72 to server version: 4.1.22-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET PASSWORD FOR 'admin'@'localhost' = \
OLD_PASSWORD('**********');

Y listo. Con eso estamos usando una contraseña con un hash mas pequeño que finalmente solucionó el problema.