Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/03/2011, 18:19
Inge_RCastillo
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Respuesta: Problema al conectarme aun servidor externo de mysql

Yo tenía el mismo problema, lo que paso es que tuve que actualizar mi servidor web al php 5.3.5, la mayoria de mis aplicaciones corren sobre mysql 5.1, pero un servidor de base de datos usa aun mysql 4.1. Y al intentar conectarme, obtenía el siguiente error:

Código:
Warning: mysql_connect() [function.mysql-connect]: Premature end of data (mysqlnd_wireprotocol.c:554) in [Removed] on line 2

Warning: mysql_connect() [function.mysql-connect]: OK packet 1 bytes shorter than expected in [Removed]p on line 2

Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in [Removed] on line
Lo que sucede es que php no reconoce la forma "vieja" de los passwords de mysql, que eran de 16 caracteres, si no, busca la version de 41 caracteres.

Es por esto que nuestro servidor mysql 4.1 en el archivo de configuracion, tenemos que editar la linea de :

Código:
old_passwords=1

y cambiarle el valor a 

old_password=0.
Esto es para desactivar que mysql guarde de la antigua manera. Ahora reiniciamos el servicio de mysql, y reseteamos el password del usuario de mysql de nuestras aplicaciones. Esto es con el fin de que se guarde con el nuevo hash

Código:
SET PASSWORD FOR 'user'@'localhost'=PASSWORD('pass');
Con eso resolvi mi problema.Espero les sirva.

Saludos.