Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Jukuqs en 5 Abril 2009, 14:27 pm



Título: No puedo acceder a mi base de datos desde fuera.
Publicado por: Jukuqs en 5 Abril 2009, 14:27 pm
Bueeeno gente, tengo una dudilla  ;D .

Creo que no encierra ningún misterio pero se me esta pasado algo >.< .
Tengo una web hecha que me va perfectamente el localhost.
En vez de operar en el puerto 80 opera en el 9898.
TODO, funciona al 100%, me deja loguear, registrar usuarios...
Peeeeeero si intento acceder a ella desde fuera, desde, por ejemplo, miweb.no-ip.org:9898 tambien va, pero al intentar conectar con la DB se queda cargando toda la vida. Tengo abierto el puerto 3306 (mySQL) de mi router.

Conecto a la db de la siguiente forma:

Código:
    $dbhost='miweb.no-ip.org:9898'; //En eso dudo.
    $dbusername='root'; //Esta bien puesto.
    $dbuserpass='pass';  //Esta bien puesto.
    $dbname='test';  //Esta bien puesto.

    session_start();

    mysql_connect ($dbhost, $dbusername, $dbuserpass);
    mysql_select_db($dbname) or die('Cannot select database');

Creo que paso por alto algo pero... ¿qué?

Gracias de antemano!


Título: Re: No puedo acceder a mi base de datos desde fuera.
Publicado por: Nakp en 6 Abril 2009, 00:02 am
accedes a la web por el puerto 9898 pero el script accede por el puerto 3306 y en localhost... o tienes el script en otro servidor y la base de datos en el tuyo?


Título: Re: No puedo acceder a mi base de datos desde fuera.
Publicado por: Jukuqs en 6 Abril 2009, 11:53 am
Hola!

Gracias por responder! A la web accedo por el 9898, si. En cuanto al script, ¿cual? el de login del mySQL tiene que acceder por el puerto de mySQL? Porque en localhost pongo localhost y listos. Vale, lo he provado, con miweb.no-ip.org:3306 me da un error. En cuando a la db y al script estan en mi ordenador, todo está en mi ordenador por el momento.

Pongo el error que sale cuando pongo el puerto 3306:

Código:
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'miweb.no-ip.org' (10061) in C:\AppServ\www\index.php on line 8

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\AppServ\www\index.php on line 9

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in C:\AppServ\www\index.php on line 9
Cannot select database

Como ves todos los errores son consequencia del primero, que impide que me conecte a la db, con cualquier puerto que pruebe me da ese error, excepto con 9898 que se queda colgada la conexion y a los 30 segundos da error.


Título: Re: No puedo acceder a mi base de datos desde fuera.
Publicado por: Spider-Net en 6 Abril 2009, 15:31 pm
No das muchos detalles, no dices si está montado el servidor en linux o en Windows, pero este problema frecuentemente suele deberse a la configuración de mysql. Busca el archivo de configuración de tu mysql, en linux es /etc/mysql/my.cnf.

Comenta la línea que dice bind-adress=127.0.0.1 que impide cualquier conexión que no provenga de localhost. Cuando lo hagas reinicia el demonio de mysql para que los cambios tengan efecto y luego vuelve a probar.

Si usas Windows es parecido, busca el archivo de configuración y reinicia el servicio mysql de windows.

Saludos!


Título: Re: No puedo acceder a mi base de datos desde fuera.
Publicado por: дٳŦ٭ en 6 Abril 2009, 16:40 pm
mmm agrega tu host al my.cnf. Aunque si lo tienes en localhost no le veo caso que salgas para conectarte a la misma ip...


Título: Re: No puedo acceder a mi base de datos desde fuera.
Publicado por: Jukuqs en 6 Abril 2009, 17:35 pm
Gracias a los dos!

Ahora voy a provar. La web no va a ser en localhost, pero para provar la uso en local. Estoy haciendo las pruebas en Win Vista (si, lo sé) pero lo voy a montar en un PC con Win 98.

Saludos!

EDITO: No encuentro esa linea que me dices >.< . Por cierto, en host que debo poner: miweb.no-ip.org:9898, miweb.no-ip.org:3306 o miweb.no-ip.org a secas?

EDITO2: Por cierto, el paquete que usé es AppServ.