error al conectar mysql en dreamwaver desde php

sara_coco
15 de Marzo del 2010
hola a todos!!!
tengo un gran problema q no se como solucionar...
estoy haciendo una pagina en php y tengo q conectarme con una base de datos en mysql, al intentar hacer la conexion me sale un error...."error no identificado"
He intentado mil cosas, porfa... ayuda!!!!!!!

pedro
15 de Marzo del 2010
Solo quiero decir que este error me tenia de cabeza, estaba tratando de ver una conexión a la base de datos a traves de dreamweaver MX con una pagina PHP y era imposible me salía el error:

1251 client does not suppot authentication protocol requested by server; consider upgrading Mysql client.

Y todo por esto, llevaba mas de una semana puteado, pero muy puteado.

Solucionar error php con la contraseña ,para Mysql server 4.1.X
Como solucionar este error nos vamos a Mysql desde inicio/programas/Mysql/Mysql 4.1/mysql command line client

Ponemos la contraseña y iniciamos Mysql
Ponemos
Mysql>use myslq;
Aquí cambiamos a mysql que es donde podemos modificar los comandos internos de Mysql
Ponemos
Mysql>update user set password=old_password(\'aqui ponemos la misma contraseña que para entrar en mysql\') where user=\'root\';
Para que salga la ‘ es teclear la tecla de la derecha del número 0 que es ¿’ rellenamos todo y pulsamos enter luego ponemos la siguiente línea de código y ya esta.

Mysql>flush privileges;

Nos vamos a dreamweaver y por fin ya funciona la conexión a base de datos que elijamos.

Programas instalados:

Windows 2000 – parches actualizados -
IIS 5.0
Mysql 4.1.2
PHP 4.3.11
ODBC 3.51
Dreamweaver MX



druida
15 de Marzo del 2010
muchas gracias, he perdido un dia intentando arreglar esa conexion, y nada, hasta que he probado tu solucion.

guz
15 de Marzo del 2010
tengo el mismo problema y dos semanas en que no lo puedo resolver. error no indentificado, pero manejo MySQL Workbench, alguien me puede ayudar??

pablo
15 de Marzo del 2010
gracias por esta ayuda,,,

Como se puede upgradear el cliente para no hacer esto ??

saludos

bitseater
15 de Marzo del 2010
¿Qué es "upgradear"?

arios
15 de Marzo del 2010
gracias viejo... sos un capo

pedro
15 de Marzo del 2010
Tambien si conectas a la base de datos con una pagina PHP guardada en el servidor en la cual creaste una conexion a una base de datos ya creada, sin pasar por dreamweaver MX, te dara este error

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

Y esto es porque:

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:

El servidor está correctamente instalado. Puedes arrancar y apagar el server sin problema
Puedes utilizar sin problemas todas las aplicaciones de mysql.com: por ejemplo la linea de comandos (mysql), Mysql administrator o Mysql Query Browser.
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.

Advertencias
Si no se trata de una instalación nueva, sino que has actualizado sobre otra ya existente, quizás el problema sea otro, por ejemplo que ha cambiado la estructura de la tabla de permisos.
Esta página no trata este supuesto.


Esta solución servirá en tanto se descubra como arreglarlo desde php. Si sabes como, no dudes en decirmelo ([email protected]).

Un amable lector sugirió, pocos dias despues de publicar este artículo por primera vez, que la solución mas correcta era sustituir el archivo libmySQL.dll que viene en el directorio raiz de php por el archivo del mismo nombre que encontrarás en la carpeta /bin/ de MySQL. No he probado esta solución, pero lo haré próximamente. La solución definitiva (solo con php5) es cambiar los scripts a MySQLi, pero esta extensión todavia no está muy difundida.

Naturalmente, el viejo sistema de encriptación es ligeramente mas inseguro que el nuevo. Pero el viejo funciona, el nuevo, no desde php

Esta solución sirve solamente para el mensaje de error citado. Otros problemas de conexión tienen diferentes soluciones

Puedes conservar tu usuario 'root' original para conectar con las utilidades de mysql.com y el nuevo usuario para conectar desde php

Yo no he podido actualizar el ISAPI a la nueva version, si alquien sabe como ponerlo, por favor.

Programas instalados:

Windows 2000 – parches actualizados -
IIS 5.0
Mysql 4.1.2
PHP 4.3.11
ODBC 3.51
Dreamweaver MX

developer
15 de Marzo del 2010
Gracias!!!!!

9590720
15 de Marzo del 2010
he probado tu solucion y me funciona pero es muy curioso porque solo la primera conexion despues de efectuar tu recomendacion y no mas . eso si y vuelvo a ejetular la solucion que propones vuelve a funcionar pero solo una conexion . no se puede hacer algo definitivo? o es que hay que incorporar algo en el codigo de la conexion o quitar algo????estoy desesperada

Juan Manuel
15 de Marzo del 2010
Hey amigo tengo un inconveniente, cuando intente cambiar el usuario root de Mysql con los pasos que indicaste, me aparecio un error que me decia que nombre de usuario invalido, luego intente realizar nuevamente el proceso pero no me deja ingresar a Mysql. Al paracer se cambio el usario, pero intento ingresar con el nombre que registre y la contraseña pero no me deja accesar, intento aceder desde MySQl Font y tampoco me deja accesar a esa base de datos. Hay alguna posibilidad de ingresar y verificar el user que qeudo registrado y la contraseña y poder lo cambiar. op definitivamente se debe reisntalar el MySQl

kashell
15 de Marzo del 2010
He intentado lo que dices en tu primer mensaje,
ya me meti a mysql, hice los cambios, y nada,
sigo sin poder conectarme a mi base atravez de dreamweaver.

No se necesitan parches o algo asi.

Por sus respuestas gracias.

el_popo
15 de Marzo del 2010
te recomiendo que hagas esto:
revisa si el servidor mysql esta iniciado
silos esta ejecuta este codigo desde una pagiana php
$link = mysql_connect('localhost', 'root', 'password');
if (!$link)
die('Error al conectarse con MySQL) ;
if (! @mysql_select_db("nombre_BD",$link))
{ echo "No se pudo conectar correctamente con la Base de datos}