ejemplos ejemplo datos conexion conectar con archivo mysql windows-7 php mysql-connect

datos - conexion php mysql ejemplo



Problemas de conexión PHP MySQL de Windows 7 (4)

Verifique la opción old_passwords en su archivo my.cnf .

http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_old-passwords

Si por alguna razón no puede cambiar a nuevas contraseñas, no puede usar mysqlnd como su controlador MySQL, y necesita volver a la contraseña anterior.

Algo más de información acerca de mysqlnd

http://dev.mysql.com/downloads/connector/php-mysqlnd/

Esta pregunta ya tiene una respuesta aquí:

Cuando ejecuto $conn = mysql_connect($host, $user, $pass); Puedo obtener una conexión a la base de datos, pero cuando hago un var_dump($conn) obtengo bool(true) que me limita a tener múltiples conexiones a múltiples servidores.

La configuración original en esta computadora era XAMPP con una versión de PHP 5.2 que se actualizó a PHP 5.3.4 a través del instalador de PHP. Podría conectarse a su base de datos local sin problemas (aparte de devolver un booleano en lugar del identificador de enlace de recursos) pero no podría conectarse a ninguna máquina remota (y la capacidad de conectarse a máquinas remotas se ha confirmado). Sin poder encontrar una solución, me actualicé a una versión de XAMPP que tiene PHP 5.3.1 incorporado. Recibo exactamente el mismo error después de una nueva instalación de XAMPP, lo que me lleva a pensar que este es un problema mayor. .

Editar 1 **

Pasando a una instalación limpia de Windows e instalando XAMPP y tratando de ejecutar un mysql_connect a un servidor remoto (PHP 5.3.1) me sale el mismo error:

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 2


En cuanto al error publicado en su edición, he estado obteniendo el mismo error en Windows 7 con PHP 5.3.5 al conectarme a MySQL 5.0.45 en Linux. La solución para mí fue desactivar "old_passwords" en my.cnf Y ejecutar

set password = password(''my password'');

El mensaje de error no deja claro que debe hacer ambos pasos para solucionar el problema. Espero que esto ayude.


Intenté casi todo lo mencionado aquí (y en otros lugares) sin éxito hasta que encontré esto:

SET old_passwords = 0; ACTUALIZACIÓN mysql.user SET Password = PASSWORD (''testpass'') WHERE Usuario = ''testuser'' limit 1; SELECCIONAR LONGITUD (Contraseña) FROM mysql.user WHERE Usuario = ''testuser''; FLUSH PRIVILEGES;

Suelta eso en tu cliente mysql o phpmyadmin y cambia el testpass a tu contraseña de inicio de sesión de DB y el usuario de prueba a tu usuario de inicio de sesión de DB, ejecuta la consulta. ¡Gran éxito! problema resuelto.


cuando desee cambiar su contraseña y el servidor siga generando hashes de 16 bytes, puede intentar lo siguiente:

1) genera hash 41bytes por ti mismo (usando un sitio web generador de hash) por ejemplo contraseña: ''qwerty'' hash: ''aa1420f182e88b9e5f874f6fbe7459291e8f4601''

2) cambie la contraseña SET PASSWORD PARA ''username'' = ''* aa1420f182e88b9e5f874f6fbe7459291e8f4601''

ahora debería poder conectarse a la base de datos utilizando el nuevo método de autenticación