Comunidad de diseño web y desarrollo en internet online

Servidor PHP no se conecta con MySQL

Citar            
MensajeEscrito el 12 Oct 2015 06:02 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.

Por Antonio_1987

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Oct 2015 03:34 pm
¿Sabes en qué dirección (IP o nombre de host) y número de puerto está respondiendo MySQL?, porque eso de tiempo de espera agotado puede deberse a que intentas conectar a una dirección en un puerto que no responde porque no hay nada allí para responder.

El puerto donde está MySQL se configura en el el archivo my.ini (el lugar donde está este archivo puede variar según la instalación que tengas) y el puerto estandar es el 3306.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Oct 2015 03:54 pm
También puede ser que no tenga el driver de MySQLi el PHP, eso se verifica en

phpinfo(); te menciona que drivers tiene los MySQL

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 12 Oct 2015 05:14 pm
Hola, muchachos. Gracias por responder. Pues la configuración del MySQL está bien, creo, en cuanto a host (local) y puerto, o no hubiera podido usarlo bien hasta ahora con Workbench. Lo segundo sí puede ser, que le falte un driver al PHP. ¿Lo bajo simplemente de internet, según mi versión de MySQL, y lo copio en su respectiva carpeta de AppServer? ¿O después debo configurar algún otro archivo? Iré bajando un driver, me indican por favor si hay más pasos que dar o si basta con eso para que se comuniquen bien PHP y MySQL (porque no debe ser tema de Apache, ¿no?). Gracias. ;)

Por Antonio_1987

5 de clabLevel



 

safari
Citar            
MensajeEscrito el 12 Oct 2015 08:44 pm
Apache no interviene en el proceso para nada.

Los drivers los debes instalar en PHP. Hay mucha documentación al respecto porque es una tarea muy común.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Oct 2015 06:25 am
Hola, muchachos, cómo van...

Fíjense, revisé en mi PHPINFO() los datos sobre MySQL, y sí me aparecen todos los componentes en Enabled, incluido el MySQL. En este último caso, esto es lo que me sale:



Eso de que no haya un "mysqli.default_host", un valor por defecto, ¿tendrá que ver? Porque los mensajes de error que me aparecen, cambian según en mi cadena de conexión coloque "localhost" o "127.0.0.1" como host. En el primer caso, el tiempo de espera se agota y me dice que no se logró la conexión. Pero si pongo "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\www\XXXXX\conect.php on line 2.


"Línea 2" es justamente la que contiene los valores de la conexión.

Espero que eso dé más luces sobre qué tendría que configurar para arreglar el fallo. :( Recuerden que se trata del AppServer instalado sólo con PHP y Apache. No instalé el MySQL que me traía porque ya tengo un servidor MySQL funcionando sin problemas y quería trabajar con ése, sin desinstalarlo... Pero veo que sólo con instalar cada componente por separado no es suficiente para que se comuniquen.

Ojalá haya una solución, saludos y gracias.

Por Antonio_1987

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Oct 2015 12:08 pm
Ah pero este mensaje de error lo cambia todo. No es que no puedes encontrar el servidor MySQL, es que no te acepta las credenciales.

Pues hazle caso al mensaje y revisa que estés poniendo bien el nombre de usuario y la contraseña de MySQL.

Que te de tiempo de espera agotado cuando usas el nombre de host "localhost" puede deberse a que no tienes "localhost" como nombre de dominio en el archivo host del tu sistema.

Por DriverOp

Claber

2510 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Oct 2015 06:00 pm
Hola, amigo. Le cambié la contraseña a mi MySQL y probé con esa nueva, y esta vez sí me funcionó. Ahí estaba el detalle. ;) Eso sí, me sigue saliendo "Tiempo de espera agotado" cuando uso "localhost" en vez de "127...". Y los valores de mi archivo host son correctos:

............
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
127.0.0.1 activate.adobe.com
127.0.0.1 localhost

=p Bueno, no me quita el sueño ese error de todas formas, con poner 127.0.0.1 mi sistema correrá bien localmente. Un saludo, gracias por tu ayuda.

Por Antonio_1987

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Oct 2015 12:51 pm
Podrías diagnosticar el problema de localhost viendo si usando ese nombre de dominio se resuelve a 127.0.0.1

Por DriverOp

Claber

2510 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.