Client does not support authentication protocol requested by server

Siempre que hago una nueva instalación de MySQL, y entro por phpMyAdmin para administrar mi base de datos me encuentro con el siguiente error:

#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

Esto sucede porque a partir de la versión 4.1.1 MySQL usa un protocolo de autenticación basada en un algoritmo de encriptación de passwords y ya no se puede entrar como estabamos acostumbrados los usuarios antiguos.

Podemos solucionar este problema fácilmente con los siguiente pasos (Para el ejemplo estoy usando MySQL 4.1.12a-nt y Windows XP con Service Pack 2):

  1. Entramos por consola a la carpeta de MySQL y escribimos: mysql -u root -p, donde root es el usuario principal de MySQL nos pedirá que ingresemos la contraseña, en mi caso es 'mysql'.

  2. Ahora vamos a "actualizar" la contraseña de root, para eso escribimos:

    SQL:
    SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('mysql');
    donde root es el usuario con el cual quiero usar la antigua forma de autenticación, localhost es el nombre de mi servidor de base de datos y 'pass' es la contraseña que quiero usar (Si tenemos mas usuarios, debemos hacer lo mismo por cada usuario; es decir si tuviera algun usuario llamado 'valois' tendría que escribir SET PASSWORD FOR 'valois'@'localhost' = OLD_PASSWORD('PasswordDeValois'); y lo mismo para otros usuarios).

    Inicio de sesión en MySQL y actualización de contraseña

  3. Listo 🙂

Eso es todo, despues de eso podremos entrar sin problemas a administrar nuestra base de datos; sea por consola, phpMyAdmin o cualquier herramienta, cualquier duda ya saben donde molestarme.

55 Replies to “Client does not support authentication protocol requested by server”

  1. Hola,
    Despues de HORAS de intentar mil tonterias en la web ...
    Incluso montar todas las combinaciones posibles que te puedas imaginar ...

    Lei esta, pensé ..."Que más dá ...otro intento"

    Funcionó correctamente ..,

    Gracias !!

  2. encontre varias soluciones usando otros comandos, q no me funcionaron recien probe la tuya y se soluciono en un triz, los graficos ayudaron un monton por q soy nuevo en mysql, detallada pero a la vez simple y clara, gracias desde ayer estuve q probe estuve padeciendo con este problema, gracias

  3. Esta de mas decirte q luego de un monton de tiempo perdido tu nos diste la solucion, mil gracias y sigue con ese espiritu de enseñanza..........
    Mil gracias nuevamente,
    Fernando

  4. Muchas gracias, funcionó...no veas que alegria...
    una más?....monto Mysql 4.1.21 y phpmyadmin 2.6.4-pl2 en local estoy empezando con las bases de datos y...bueno el rollo de todos el caso es que al dar de alta un nuevo usuario (en phmyadmin), me pasa igual!! siempre tendré que ejecutar SET PASS... o conoces alguna solución así como accesible para un profano en esto....muchas gracias de antemano...

  5. Puedes poner old_password en my.ini, compilar la extensión de acuerdo a tu versión de MySQL o hacer lo que se explica en esta entrada para cada usuario que crees.

  6. Bueno, yo tenia prob al conectar una BD desde una aplicacion PHP. Me daba ese error al usar el trigger_error en:
    mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR)

    Esto lo soluciono. ASi q mi agradecimiento, ya q estuve luchando largo y tendido!!!!

    Muchas Gracias!!!!!!

  7. Muy bueno, gracias por publicar esta solucion. No busqueis más esto funciona perfectamente gracias.

  8. Ufff, hasta q porfin Gracias, y una pregunta lo que hicimos es el upgrading que pide? o es otro camino para solucionarlo (es volver a lo antiguo?) sacame de esa duda porfavor. Gracias nuevamente

  9. En efecto, esa fue la solucion, muchisimas gracias, a por cierto solo queria decir que amo a DULCELINA FLORES CARDENAS, que es el amor de mi vida y que la extraño mucho.

    14/03/2007

  10. Masterrrr!!!!!! Te has pasado!!!!!
    Era mi única salvación, tenía que dejar en mi equipo con WinXp las mismas aplicaciones que en un server Linux... Esto es Mysql 4.1.20 y Php 4.3.9 así que imagínate los problemas que me dió... Primero fue el error HTTP 401;5 y después lo de la clave...
    Gracias gracias gracias!!! 😀

  11. Excelente, se ha terminado mi suplicio, y mis horas de hacer chambonadas, gracias muchas.

  12. Estoy aprendiendo PHP, MySql y Apache con un libro y me las estoy viendo p**** para configurarlo todo.
    Sólo me faltaba el tema de MySql y tu post me ha venido genial. Muy bien explicado.

    Por cierto, sales primero en google en la búsqueda de este error.

    Felicidades y mil gracias por la ayuda.

  13. Lei el trabajo,

    pero como puedes hacer para que phpmyadmin use siempre autenticacion de acuerdo a lo que usa mysql5?

  14. 3 horas tontiando y nada para saber que la soluci'on era tan sencilla mil gracias de verdad que si...

    Germán desde Colombia agradece.

  15. el problema es que tengo la BD en un hosting y cuando me conecto me da ese error la conexion que aplico con php es:
    ";
    exit();
    }
    else
    {
    echo "base de datos conectanda.";
    }

    ?>

    En lo que me puedas ayudar te agradezco.

  16. Disculpa no salio bien el codigo es:
    $hostname="host";
    $username="usuario";
    $password="usuario1";
    $dbname="prueba";
    $tablename="tabla";

  17. Muchas gracias amigo, estube intentando de todo hasta que encontre tu solucion, ahora solo tengo una duda en donde bloqueo para que el usuario root no pueda accederse remotamente

  18. Tengo un problema estoy, compre el hosting de godaddy y me da este problema, "Client does not support authentication protocol requested by server; consider upgrading MySQL client" al momento de conectarme a la base de datos no entiendo que es y como puedo solucionarlo, alguien me puede ayudar? Gracias...

  19. por fin! como un boludo editando el config.inc.php! encima no me dejaba entrar como root pero si como cualquier otro usuario! no entendia nada... pero bue...
    gracias

  20. GRACIASSSSSS!!!! yo era otra de las que ya estaba por volverse loca. Sos un capo, no hay nada más que decir.

  21. Llevaba horas googleando para intentar que phpmyadmin conectara a mysql, ninguna solución parecía funcionar y la verdad no se me ocurrió que algo tan elemental como la encriptación de la password fuera el problema (con tanto código libre circulando por la red uno se sorprende de estos "gazapos" en software de tanta calidad la verdad), mil gracias por tu ayuda.

  22. Genial, me resultó... ahora tengo otro problemita, resulta que tengo mysql 6.0 mysqlCC 0.9.2 y apache 2.2. Al crear y editar las tablas por consola me resulta sin problemas, pero por algo instalé MysqlCC, para poder trabajar con tablas visualmente, pero al tratar de crearlas con este último me sale un mensajito, cito:
    root@MySQL Datafiles:3306] ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MYISAM PACK_KEYS=DEFAULT ROW_FORMAT=DEFAULT' at line 1.
    Ojo ya he cambiado el tipo de tabla a Innodb, y he tratado de intrusear en la configuración de MysqlCC, pero nada. Al tratar de editar las tablas que he creado por consola, las visualiza sin problemas, pero al tratar de modificarlas me aparece el mismo error. Si alguien pudiera señalar algo se lo agradecería. Un absoluto neófito, novato en mysql y Php. Gracias

  23. Vaya, voy a ser yo quien les lleve la contraria a todos pero a mi no me funcionó.

    Sigue mostrando el mismo mensaje de error.

  24. Me ha pasado anteriormente esto y lo lamentable es que no recordaba que pu..., pero bueno buscando y gracias a nuestro amigo Braulio lo pude recordar, lo hice y funciono de una, gracias amigo. TAF

  25. yo tuve el problema con DBF2MySQL al intentar convertir los formatos de unas tablas, y ya habia intentado esta misma solución pero no me funcionaba.
    No se por que pero con root no me funcionaba, hasta que cree un nuevo usuario al que sí le funciono el OLD_PASSWORD y problema solucionado!!!

Comments are closed.