Error en conexion con mySQL

panzita
10 de Febrero del 2005
Hola a todos:
Cuando intento conectarme a una base de datos con el siguiente script:

function Conectarse()
{
if (!($link=mysql_connect("localhost","root","wolverine")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("base_datos",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

me aparece el siguiente error:

Warning: Client does not support authentication protocol requested by server; consider upgrading MySQL client in g:docsconectar.php on line 10

Warning: MySQL Connection Failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client in g:docsconectar.php on line 10

No tengo ni idea de por que pueda ser. No se si podrá ser un conflicto de versiones.

Uso mySLQ 4.1.7 y PHP 4.3.9 en un Windows XP Proffesional SP2.

A ver si alguien me puede echar una mano.

Gracias por anticipado

Surt
10 de Febrero del 2005
Pues si, se debe a un cambio con la nueva version de MySQL, puedes leer mas aqui:

http://dev.mysql.com/doc/mysql/en/Old_client.html

panzita
10 de Febrero del 2005
Problema corregido. He cambiado la contraseña al usuario usando el parametro OLD_PASSWORD.

Gracias por la ayuda

Fernando
10 de Febrero del 2005
Hola a mi me paso tambien, tenes que instalarte MySQL Administrator y abilitar desde ahi una prop que avilita a clientes.

Saludos y Suerte

enralc
10 de Febrero del 2005
Gracias por la información. También me ha sido útil el link.

DAN
10 de Febrero del 2005
Bajais el programilla "MySQL Administrator" que encontrareis aquí:
http://dev.mysql.com/get/Downloads/MySQLAdministrationSuite/mysql-administrator-1.0.19-win.msi/from/pick

Seguidamente lo ejecutamos y conectamos como root.

Vamos a la opción de la izquierda que dice: "StartUp Variables" y luego a la derecha elegimos la pestaña "Security",.

En "SECURITY" marcamos el check box que dice: "Use Old Passwords". Luego aplicamos los cambios.

En la vista de la izquierda, seleccionamos ahora "User Administration" y nos creamos un nuevo usuario "New User". Ponemos una contraseña y rellenamos los campos que creamos interesantes.

Vamos al panel que pone "User Accounts" abajo a la idquierda. Hacemos click con el botón derecho del ratón sobre el nombre del usuario, que hemos creado y seleccionamos la opción "Add Host From Wich the User Can Connect" y seleccionamos el host al que nos conectaremos con ese usuario (no haber hecho esto es una de las razones del error), si es vuestro localhost, pues lo ponéis y si no, la ip/host que sea. Por último APLICAMOS LOS CAMBIOS y no estaría mal darle algunos permisos al usuario sobre alguna base de datos (la base de datos test por ejemplo que es para hacer pruebas).

Para estar mas seguros, editamos el archivo "my.ini", que suele estar en la carpeta donde instalaste mysql, y agregamos esto en la parte dedicada al servidor:

#Use old password encryption method (needed for 4.0 and older clients).
old_passwords

Lo que va tras la # es un comentario.

Para finalizar reseteamos los servidores (apache y mysql)

A mi me funcionó... y a vosotros?