Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Antonio_1987 en 12 Octubre 2015, 08:07 am



Título: [Resuelto] Mi servidor PHP no se conecta con MySQL
Publicado por: Antonio_1987 en 12 Octubre 2015, 08:07 am
Hola con todos, ¿cómo les va? Fíjense, estoy probando un pequeño sistema de Intranet, pero en el momento de hacer la conexión en PHP no logro llegar a la BD en MySQL, la página se queda cargando eternamente y se agota el tiempo de espera. La cadena de conexión es una común del tipo:

$ConexionBD = mysqli_connect("$host","$usu","$pass", "$bd");

El problema debe estar en que estoy usando AppServer, la versión 2.5.10; pero sólo instalé de ella el Apache y el PHP. Pasa que ya tengo el MySQL (una versión actual), con mi BD trabajando con el Workbench instalado y todo eso, y no quiero desinstalar esa versión y trabajar con la antigua que me trae el AppServer. Pensé que no iba a haber dificultades instalando sólo Apache y PHP, pero parece que simplemente no se logran comunicar con mi motor MySQL.

Espero me puedan ayudar, talvez diciéndome qué archivos debería configurar para arreglar ese lío, o si doy mi brazo a torcer e instalo el AppServer completo nada más (sólo que esta BD es muy importante así que preferiría no mover nada ni trabajarla con otra versión). Gracias.


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: dRak0 en 12 Octubre 2015, 12:20 pm
Nose mucho php pero http://php.net/manual/es/mysqli.error.php


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: 0roch1 en 12 Octubre 2015, 17:32 pm
Verifica que el Servicio de Apache esté iniciado.
(https://i.imgur.com/oZDpU1E.png)

Revisa en el httpd.conf que Apache esté escuchando el puerto 80 (en caso de haber dejado ese puerto)
(https://i.imgur.com/e4nScq7.png)


y el nombre y puerto del Servidor
(https://i.imgur.com/F2jz2r0.png)

Comprueba en el Monitor de recursos mediante el PID que el puerto 80 es usado únicamente por la imagen httpd.exe

(https://i.imgur.com/iBO5VQg.png)

(https://i.imgur.com/UCZOneS.png)

Si todo está en orden deberías poder ver la página de inicio de Appserv

(https://i.imgur.com/pu2LbN4.png)

Prueba y comenta cualquier duda.


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: Antonio_1987 en 12 Octubre 2015, 19:32 pm
Hola, gracias por contestar. :) Pues sí, sí puedo ver la página de inicio de AppServer, de hecho mi sistema está funcionando, el navegador abre mis páginas PHP por el puerto 8080 y todo lo demás. El detalle está cuando tiene que hacer consultas a la BD, la página no se conecta nunca y se agota el tiempo de espera, como narré. ¿Una idea de dónde estaría la falla? :/ Saludos y gracias.


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: dRak0 en 12 Octubre 2015, 20:00 pm
EDIT:Mejor usa mysqli_connect_error() , http://php.net/manual/es/mysqli.connect-error.php


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: 0roch1 en 12 Octubre 2015, 20:11 pm
Estás ejecutando alguna consulta que posiblemente devuelva muchos registros?.
El Servicio de MySQL lo tienes iniciado?
Los datos de conexión son los correctos?
Si realizas solo la conexión tienes el mismo problema?.

Código
  1. <?php
  2. $enlace = mysqli_connect("servidor", "usuario", "contrasena", "base_datos");
  3.  
  4. if (!$enlace) {
  5.    echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
  6.    echo "errno de depuracion: " . mysqli_connect_errno() . PHP_EOL;
  7.    echo "error de depuracion: " . mysqli_connect_error() . PHP_EOL;
  8.    exit;
  9. }else {
  10. echo "Exito: Se realizo una conexion apropiada a MySQL! La base de datos mi_bd es genial." . PHP_EOL;
  11. echo "Informacion del host: " . mysqli_get_host_info($enlace) . PHP_EOL;
  12. }
  13.  
  14. mysqli_close($enlace);
  15. ?>
  16.  
http://php.net/manual/es/function.mysqli-connect.php


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: Antonio_1987 en 13 Octubre 2015, 08:14 am
Hola, amigos, qué tal.

A ver, probé sólo con el archivo que me mandaste, 0roch1, dándole mis parámetros de conexión. Cuando coloco "localhost" como nombre de host, me sale este error:

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2002): Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder. in C:\AppServ\www\Otros\FEDCUT\conect.php on line 2

(Línea 2 es la que contiene los parámetros de conexión: $enlace = mysqli_connect(....) )

En cambio, si coloco la dirección "127.0.0.1", aparece lo siguiente:

Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\AppServ\XXXXXXXXXX\conect.php on line 2
Error: No se pudo conectar a MySQL. errno de depuracion: 1045 error de depuracion: Access denied for user 'root'@'localhost' (using password: YES)


¿Alguna idea de dónde debería reconfigurar las cosas para que no me tome una password "YES" sino la que yo le estoy poniendo en los parámetros? Porque parece que por ahí está viniendo el problema... Espero me puedan guiar, muchachos. Gracias.   :)


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: MinusFour en 13 Octubre 2015, 16:07 pm
Hola, amigos, qué tal.

A ver, probé sólo con el archivo que me mandaste, 0roch1, dándole mis parámetros de conexión. Cuando coloco "localhost" como nombre de host, me sale este error:

Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2002): Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder. in C:\AppServ\www\Otros\FEDCUT\conect.php on line 2

(Línea 2 es la que contiene los parámetros de conexión: $enlace = mysqli_connect(....) )

En cambio, si coloco la dirección "127.0.0.1", aparece lo siguiente:

Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\AppServ\XXXXXXXXXX\conect.php on line 2
Error: No se pudo conectar a MySQL. errno de depuracion: 1045 error de depuracion: Access denied for user 'root'@'localhost' (using password: YES)


¿Alguna idea de dónde debería reconfigurar las cosas para que no me tome una password "YES" sino la que yo le estoy poniendo en los parámetros? Porque parece que por ahí está viniendo el problema... Espero me puedan guiar, muchachos. Gracias.   :)

Simplemente te está diciendo que estas usando una contraseña, no que la contraseña sea 'YES'. El login parece que esta mal (tu usuario es root? La password es correcta?)


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: Antonio_1987 en 13 Octubre 2015, 19:59 pm
Ya modifiqué la contraseña del root, la cotejé y esta vez sí se pudo conectar, apareciéndome el mensaje de Éxito que configuraste, Minusfor. Muchas gracias. ;) Para dar el tema por solucionado, sólo una cosita más: ¿Por qué la diferencia de "Tiempo de espera agotado" cuando usaba el Localhost en vez de "127.0.0.1"?
Muchas gracias, un saludo.


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: MinusFour en 13 Octubre 2015, 20:21 pm
Ya modifiqué la contraseña del root, la cotejé y esta vez sí se pudo conectar, apareciéndome el mensaje de Éxito que configuraste, Minusfor. Muchas gracias. ;) Para dar el tema por solucionado, sólo una cosita más: ¿Por qué la diferencia de "Tiempo de espera agotado" cuando usaba el Localhost en vez de "127.0.0.1"?
Muchas gracias, un saludo.

Debería funcionar, quizás lo escribiste mal. Si no debe ser alguna configuración de resolución de dominios de PHP o algo esta mal con tu SO.


Título: Re: Mi servidor PHP no se conecta con MySQL
Publicado por: dRak0 en 13 Octubre 2015, 20:39 pm
Seguramente porque no acomodaste la ip publica en el archivo de configuracion.Tonces te tiraba timeout porque ni lo registraba.Si cambiabas el archivo de configuracion del server , te iba a tirar el mismo problema del password.

Saludos!