Está usted en Indice > Construcción > Lenguajes > MySQL > Lecciones y Paso a Paso > Resolver problemas con autenticación en MySQL
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Resolver problemas con autenticación en MySQL

Resolver problemas con autenticación en MySQL

Es probable que al utilizar una versión reciente de MySQL (digamos 4.1.x o posterior) de pronto tengamos problemas al tratar de conectarnos debido a un problema de autenticación. El mensaje que recibimos es algo como esto:

"Client does not support authentication protocol requested by server; consider upgrading MySQL client".

(El cliente no soporta el protocolo de autenticación solicitado por el servidor; considere actualizar su cliente MySQL)

Lo que sucede es que en MySQL 4.1, los desarrolladores de MySQL actualizaron el proceso de autenticación de usuarios. El hash que forma el password se incrementó de 16 a 41 bytes con el fin de hacerlo más seguro.

El efecto de este cambio es que las versiones de clientes MySQL anteriores a la 4.1 no pueden hablar con un servidor cuya versión sea 4.1 o posterior, ya que los clientes no son capaces de darle al servidor el hash del password de la forma correcta.

Hay dos maneras de resolver este problemilla. La primera es actualizar la librería cliente como lo sugiere el mensaje de error que se nos regresa. Esto es una buena idea ya que con esto se estará usando una autenticación más segura y se tendrán los beneficios de las más nuevas librerías cliente. Los usuarios de PHP deben tener en cuenta que únicamente la librería MySQLi usa la nueva librería cliente.

La segunda forma es forzar al servidor MySQL 4.1 a que use el viejo protocolo de autenticación. Esto puede ser hecho a nivel cuenta (usuario) o a nivel servidor.

Para configurar un sola cuenta para que use el protocolo anterior, debemos poner el password usando un hash de 16 bytes con el uso de la funcion OLD_PASSWORD().

mysql> SET PASSWORD FOR 'el_usuario'@'el_servidor' = OLD_PASSWORD('el_password');

Cuando MySQL detecte un hash de 16 bytes, éste autenticará al usuario usando el protocolo anterior y los clientes serán capaces de establecer la conexión al servidor.

Para configurar a MySQL para que use el viejo esquema de autenticación a nivel servidor, hay que agregar old-passwords como una opción en el archivo de configuración de MySQL bajo la sección [mysql]. Esto hace que el servidor ponga todos los passwords usando 16 bytes, lo cual forza a utilizar el viejo esquema de autenticación. Cualquier password existente de 41 bytes necesitará ser puesto nuevamente a 16 bytes usando la sintaxis SET PASSWORD descrita anteriormente.

Autor: bluemen
http://www.mysqlhispano.com



Usuarios que han visto este tema también han visto...

- MySQL en RedHat
- Creación de bases de datos y tablas en MySQL
- ¿Que son los Triggers y como usarlos en MySQL 5.0?
- Trabajar con fechas en MySQL
- Conectar desconectar al servidor MySQL


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 05-07-2008 a las 00:45:53