![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
08/07/2005, 10:40
|
| | Fecha de Ingreso: julio-2003
Mensajes: 141
Antigüedad: 21 años, 7 meses Puntos: 5 | |
A ver, creo que se lian un poco ...
Si tienen problema con: Client does not support authentication protocol requested by server; consider upgrading MySQL client
Creditos a Ignside.net
Problemas de conexión con MySQL 4.1
MySQL ha cambiado el sistema de encriptado de contraseñas a partir de las series 4.1
Es posible que en una nueva instalación de MySQL te encuentres el siguiente escenario:
1. El servidor está correctamente instalado. Puedes arrancar y apagar el server sin problema
2. Puedes utilizar sin problemas todas las aplicaciones de mysql.com: por ejemplo la linea de comandos (mysql), Mysql administrator o Mysql Query Browser.
3. Sin embargo, cuando intentas conectar con MySQL con un script php correctamente configurado te sale el siguiente error en el navegador:
Client does not support authentication protocol requested by server;
consider upgrading MySQL client
Si bien no he encontrado documentado este problema suficientemente, este mensaje de error significa que el cliente (php en este caso) no entiende el nuevo sistema de encriptado.
La mejor solución sería adaptar php al nuevo encriptado ... pero no se como hacerlo.
La segunda mejor solución, es sencillamente crear un nuevo usuario, con los privilegios de administrador, pero con el 'viejo' sistema de contraseña.
Creando el nuevo usuario
mysql> GRANT ALL PRIVILEGES ON *.* TO 'pepe'@'localhost'
-> IDENTIFIED BY 'contraseña' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'pepe'@'%'
-> IDENTIFIED BY 'contraseña' WITH GRANT OPTION;
shell> mysql
Donde creamos dos usuarios 'pepe' (usa el nombre que quieras) el primero solo podrá conectarse desde localhost y el segundo desde cualquier ordenador, ambos protegidos por contraseña.
Cambiando la contraseña
Solo resta cambiar la contraseña al viejo sistema para pepe:
mysql> SET PASSWORD FOR
-> 'pepe'@'localhost' = OLD_PASSWORD('contraseña');
mysql> SET PASSWORD FOR
-> 'pepe'@'%' = OLD_PASSWORD('contraseña');
la contraseña de pepe estará ahora encriptada en el sistema anterior, y podrá ser utilizada por tus scripts. Recuerda cambiar los datos en el config file de cada script, usando el nuevo usuario y contraseña.
Saludos !! |