Foros del Web » Programación para mayores de 30 ;) » Java »

Base de datos remota desde java

Estas en el tema de Base de datos remota desde java en el foro de Java en Foros del Web. Hola! necesito de su ayuda amigos... Tengo una base de datos en mysql, con el LAMPP en linux, y tengo una aplicacion de escritorio creada ...
  #1 (permalink)  
Antiguo 26/12/2011, 16:13
Avatar de douglasloza  
Fecha de Ingreso: abril-2008
Ubicación: Santa Tecla, El Salvador, El Salvador
Mensajes: 35
Antigüedad: 16 años
Puntos: 0
Base de datos remota desde java

Hola! necesito de su ayuda amigos...
Tengo una base de datos en mysql, con el LAMPP en linux, y tengo una aplicacion de escritorio creada en el netbeans, y necesito que realice la conexion desde mi aplicacion java a el servidor remoto, he leido un par de cosas googleando y tengo que abrir el puerto 3306 que es el del mysql, ya esta hecho y todo...
Código C++:
Ver original
  1. Class.forName("com.mysql.jdbc.Driver");
  2.                 String bd = "jdbc:mysql://xxx.xx.xxx.xxx:3306/basededatos";
  3.                 Connection conexion = DriverManager.getConnection(bd, "root", "");

luego ejecuto mi aplicacion, y a la hora de realizar la conexion obtengo el error de
Código error:
Ver original
  1. com.mysql.jdbc.CommunicationsException: Communications link faulure due to underlying exception... etc...etc...etc...
pero si le pongo la ip de la pc servidor por ejemplo 192.168.1.2:3306 si me realiza la conexion mas que perfecta, pero al poner mi IP publica me muestra el error... ademas les menciono que los puertos ya los he abierto... espero su ayuda!
no se que hacer :S espero que me puedan ayudar!
Att: Fernando Loza
  #2 (permalink)  
Antiguo 26/12/2011, 18:07
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Base de datos remota desde java

Una vez intenté hacer lo mismo en java.

El problema era que la configuración del servidor de mysql sólo aceptaba conexiones locales por seguridad.

Lo solucioné editando los ficheros de configuración, en una línea debería de poner algo como:

Valid connection addresses: localhost.

Ahí deberias poner la ip desde donde quieres acceder, o si quieres poder acceder desde cualquier sitio pon simplemente %
  #3 (permalink)  
Antiguo 26/12/2011, 18:31
Avatar de douglasloza  
Fecha de Ingreso: abril-2008
Ubicación: Santa Tecla, El Salvador, El Salvador
Mensajes: 35
Antigüedad: 16 años
Puntos: 0
Respuesta: Base de datos remota desde java

Hola... gracias por tu respuesta.. pero ese fichero que configuraste es el de apache o el de mysql??
Gracias!
  #4 (permalink)  
Antiguo 26/12/2011, 18:50
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Base de datos remota desde java

Era de mysql, no recuerdo bien el nombre pero era uno de los ficheros de configuracion
  #5 (permalink)  
Antiguo 26/12/2011, 18:51
Avatar de douglasloza  
Fecha de Ingreso: abril-2008
Ubicación: Santa Tecla, El Salvador, El Salvador
Mensajes: 35
Antigüedad: 16 años
Puntos: 0
Respuesta: Base de datos remota desde java

ok gracias, dejame probar y te comento...
  #6 (permalink)  
Antiguo 26/12/2011, 18:52
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Base de datos remota desde java

mira aquí tienes como se hace para linux, nose si será tu caso

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
  #7 (permalink)  
Antiguo 27/12/2011, 12:47
 
Fecha de Ingreso: septiembre-2010
Ubicación: Caracas
Mensajes: 83
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Base de datos remota desde java

No se si sea el caso, pero en linux no podía conectarme a mysql sino era desde localhost, tuve que ir al archivo de configuracion (en el caso de debian en /etc/mysql/my.conf) y comentar la línea

#bind-address = 127.0.0.1
  #8 (permalink)  
Antiguo 28/12/2011, 16:41
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Base de datos remota desde java

Tambien se puede agregar un usuario y al crearlo especificar el host remoto desde el cual se accederá o % como comodín.
El enlace que te han dejado es muy bueno.
  #9 (permalink)  
Antiguo 29/12/2011, 08:02
 
Fecha de Ingreso: septiembre-2010
Ubicación: Caracas
Mensajes: 83
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Base de datos remota desde java

lo que dice Ronruby es muy cierto, crea un usuario de mysql

CREATE USER 'prueba' IDENTIFIED BY 'password';

en el host del usuario se colocara % que significa que puede acceder remotamente desde cualquier lugar y luego si necesitas darle permisos a ese usuario para modificar la base de datos

GRANT ALL PRIVILEGES ON *.* TO 'prueba'@'%';

(no es recomendable darle permisos de todas las tablas (*.*) consulta informacion de mysql.

para verificar parate en la tabla mysql (USE mysql;) y luego ejecuta SELECT user, host, password FROM user;

Te recuerdo que si quieres cambiar el password de un usuario por consola con un UPDATE, utiliza la funcion PASSWORD('contraseña') para que la encripte como debe de ser

al final de todo haz un flush privileges;

se que mucho de eso no lo necesitas pero quizas al toparte con problemas de acceso te sea util

Etiquetas: mysql, remoto
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:52.