Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

IP externa y localhost

Estas en el tema de IP externa y localhost en el foro de Mysql en Foros del Web. Hola a todos, Tengo una duda sobre la conexión con la base de datos. Si queremos acceder a una base de datos que está en ...
  #1 (permalink)  
Antiguo 16/04/2008, 07:49
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
IP externa y localhost

Hola a todos,

Tengo una duda sobre la conexión con la base de datos.
Si queremos acceder a una base de datos que está en el mismo servidor como hostname ponemos localhost o la IP 127.0.0.1. Podemos acceder también poniendo la IP externa, es decir, la IP del servidor como si accedieramos de manera remota?
Si se pudiera, necesito darle al servidor permiso para conectarse remotamente con él mismo?

por ejemplo:
$conexion = mysql_connect( "localhost", "usuario", "password" );
o
$conexion = mysql_connect( "XXX.XXX.XXX.X", "usuario", "password" );

Lo he intentado y me da error de conexión y no se si es pq no se puede hacer o porque hay algún error en el código.

Muchas gracias.
  #2 (permalink)  
Antiguo 16/04/2008, 08:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: IP externa y localhost

La IP 127.0.0.1 a 127.255.255.255, es un loopback a la tarjeta de red. De ese modo no solamente se autoreferencia a sí misma la PC, sino que además se usa para verificar el estado de la tarjeta misma (Funciones de ping en consola).
El tema es que si la conexión es remota, lo que tienes que colocar es:
a) la IP asignada en la red, si tu PC tiene IP pública,
b) la IP de subred si estás en una intranet y tiene IP fija,
c) el nombre del equipo, si está en una subred LAN con DHCP.
En cualquier caso, tienes que considerar y consultar con el Administrador de la Red, en el caso de ser una intranet con conexión al exterior, si los firewalls y router de la red tienen permitido el enlace externo a tu IP. De lo contrario nunca se podrían conectar.
Dentro de una intranet armada con routers, el problema es el mismo. El router no deja pasar por default ningún pedido de enlace entre subredes, a menos que se los habiliten ex-profeso, además de habilitar en todos los casos el puerto 3306.
Son cuestiones de seguridad.
  #3 (permalink)  
Antiguo 16/04/2008, 08:53
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Re: IP externa y localhost

Muchas gracias por tu respuesta gnzsoloyo,

La verdad es que soy novata en el tema y no te he acabado de entender. La web no es una intranet, sino que es una red abierta y el código y la base de datos están en el mismo servidor. Con localhost me conecto bien pero poniendo la ip externa del servidor no y no me ha quedado claro si es posible.
Por otro lado el puerto 3306 está abierto.

Muchas gracias de nuevo.
  #4 (permalink)  
Antiguo 16/04/2008, 09:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: IP externa y localhost

La web es internet. Se denomina intranet a las redes internas de las empresas, por ejemplo, que pueden tener o no conexión directa a internet, sea por proxies o routers, que hacer de "puerta de entrada" a la intranet.
En las intranets, cada PC tiene una IP, que puede ser fija o no. Si es dinámica (no fija) el server de red usa habitualmente DHCP, que es el protocolo que permite que las PC cambien constantemente la IP sin por eso dejar de ser reconocidas en la red interna. En ese caso, las máquinas se reconocen por el "nombre" del equipo y el grupo de trabajo.
Si la IP interna es fija, cada máquina tiene una sola IP, y las subredes tienen direcciones distintas, pero en todos los casos comienzan con 192.168.X.X, que es la característica de las intranets. En ese caso debe también definirse la subnetmask, gateway y broadcast.

La cosa es simple, pero hay que meterse en el corazón de las redes:

1. "localhost" es un alias para tu propia PC. El server de MySQL está instalado en ella y las llamadas a MySQL nunca salen de tu propia máquina. De hecho siguen funcionando aunque desonectes el cable de red de tu PC. Ponerle "localhost" o 127.0.0.1, o 127.0.0.45, dará el mismo resultado. Pero si la página PHP tiene una llamada a "localhost", y el servidor es remoto, la página llamara a la PC donde se está ejecutando... que no es donde esta el servidor.

2. Para poder conectarse entre dos máquinas en forma directa o les pones IP fija o les dejas IP dinámica. Si pones IP fija tendría que ser, por ejemplo: 127.0.0.1 a una y 127.0.0.2 a la otra, con Gateway 127.0.0.0 y broadcast 127.255.225.255.

3. SI las máquinas se conectan con un hub o switch intermedio, es mas o menos lo mismo que el anterior.

4. Si las máquinas se conectan a través de un router, la cosa cambia. Si están del mismo lado de subred, no hay problema, pero si están en subredes diferentes, las políticas del router deben permitir el uso del puerto 3306 (que el router controla entre subredes) y permitir también el enlace entre subredes.
5. Si la PC server será usada para comunicarse con la web, existen ciertos detalles:
a) Puede usarse un proxy.
b) Puede usarse una IP pública distinta de la de la empresa.
c) Puede usarse la IP de la empresa, de modo que la página y el server de MySQL actúen de proxy.

En cualquier caso, la IP que debes poner en el string de conexión tiene que estar dentro de alguno de estos ejemplos

Finalmente, si la página y la base están en un servidor (host) determinado, los administradores del host te deben indicar cuál es la IP que usará, ya que el host es el que realizará el enrutamiento de las solicitudes.

Última edición por gnzsoloyo; 16/04/2008 a las 10:03
  #5 (permalink)  
Antiguo 16/04/2008, 14:04
 
Fecha de Ingreso: diciembre-2007
Mensajes: 12
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: IP externa y localhost

cuando creas los usuarios en mysql, seguramente lo creaste para accesar de forma local. debes crear un usuario con el comodin % en vez de localhost. ademas deber tener en cuenta que el proxy o firewall de tu servidor no tenga bloqueado el puerto de comunicacion usado por mysql.
  #6 (permalink)  
Antiguo 16/04/2008, 14:11
 
Fecha de Ingreso: diciembre-2007
Mensajes: 12
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: IP externa y localhost

podrias usar este update para actualizar el usuario o crear uno nuevo

UPDATE `user` SET `Select_priv` = 'Y', `Insert_priv` = 'Y', `Update_priv` = 'Y', `Delete_priv` = 'Y', `Create_priv` = 'Y', `Drop_priv` = 'Y', `Reload_priv` = 'Y', `Shutdown_priv` = 'Y', `Process_priv` = 'Y', `File_priv` = 'Y', `Grant_priv` = 'Y', `References_priv` = 'Y', `Index_priv` = 'Y', `Alter_priv` = 'Y', `Show_db_priv` = 'Y', `Super_priv` = 'Y', `Create_tmp_table_priv` = 'Y', `Lock_tables_priv` = 'Y', `Execute_priv` = 'Y', `Repl_slave_priv` = 'Y', `Repl_client_priv` = 'Y', `Create_view_priv` = 'Y', `Show_view_priv` = 'Y', `Create_routine_priv` = 'Y', `Alter_routine_priv` = 'Y', `Create_user_priv` = 'Y', ´Host´ = '%' WHERE User = 'root' AND password=password('tuclave')

Si te das cuenta en host hay un %. esto permite que te puedas conectar de forma remota a mysql. Nota: este update le da todos lo privilegios al root remoto
  #7 (permalink)  
Antiguo 17/04/2008, 01:52
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Re: IP externa y localhost

Muchas gracias a los dos por la información.

Entonces por lo que he entendido si trabajo con un host externo que tiene MySQL y el código alojados en él mismo, podría conectarme por la IP externa de ese mismo servidor en lugar de localhost siempre y cuando tenga abierto el puerto 3306 y de permisos al usuario. ¿Es así?
  #8 (permalink)  
Antiguo 17/04/2008, 04:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: IP externa y localhost

Correcto.
En esencia hay que recordar que toda página que se ejecute en forma local en el servidor puede apuntar a "localhost", pero toda página que se ejecute en el cliente, debe llevar la IP del servidor.
  #9 (permalink)  
Antiguo 17/04/2008, 04:35
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Re: IP externa y localhost

Ok!! gracias por la ayuda!!
  #10 (permalink)  
Antiguo 18/04/2008, 21:37
 
Fecha de Ingreso: enero-2008
Mensajes: 13
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Re: IP externa y localhost

hola a todos, muy interesante este foro, yo tengo el mismo problema y la verdad soy muy novata en esto, he intentado conectarme al servidor usando (nom_servidor,usuario, pwd) pero me sale el siguiente error

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'mysql.telesat.com.co' (10060) in C:\Archivos de programa\xampp\htdocs\lam\conexionbd.php on line 7
no se ha podido conectar a la BD

segun entiendo esto se debe a q no tengo permisos para acceder remotamente, entonces no se como puedo hacer para conectarme

si alguien sabe como puedo solucionar esto, se los agradezco muchoo de verdad
  #11 (permalink)  
Antiguo 19/04/2008, 15:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Re: IP externa y localhost

Cita:
Iniciado por marichica Ver Mensaje
hola a todos, muy interesante este foro, yo tengo el mismo problema y la verdad soy muy novata en esto, he intentado conectarme al servidor usando (nom_servidor,usuario, pwd) pero me sale el siguiente error

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'mysql.telesat.com.co' (10060) in C:\Archivos de programa\xampp\htdocs\lam\conexionbd.php on line 7
no se ha podido conectar a la BD

segun entiendo esto se debe a q no tengo permisos para acceder remotamente, entonces no se como puedo hacer para conectarme

si alguien sabe como puedo solucionar esto, se los agradezco muchoo de verdad
Por lo que he podido averiguar, el error en cuestión (10060) no pertenece a MySQL sino al server TCP/IP y puede darse:
1. El server MySQL no está corriendo en la máquina remota.
2. El server de MySQL está preparado para "escuchar" sólo a cierto IP:PORT para las conexiones, y tú no estás en esa dirección y puerto.
3. El server de MySQL se inicia con la opción --skipnetworking, con lo que no permite el acceso en red.
4. Estás tratando de acceder desde una IP y puerto no habilitados para ese usuario (La tabla USERS conserva la relación: user@machine / user@IPmachine).

Finalmente, es mejor que tus dudas las postees en tus propios posts, para que nadie se moleste por "colgar" las preguntas de los posts de otros. El moderador no suele permitir eso (ya vi que canceló temas por esa razón). Fuera de eso, bienvenida.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:54.