elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ¿Cómo conectar aplicación de escritorio a conexión remota mysql? [Solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo conectar aplicación de escritorio a conexión remota mysql? [Solucionado]  (Leído 4,520 veces)
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
¿Cómo conectar aplicación de escritorio a conexión remota mysql? [Solucionado]
« en: 9 Julio 2013, 00:51 am »

Hola.

De qué forma se puede conectar una aplicación de escritorio a una base de datos que se encuentra en un hosting?.

Lo estoy intentando de la siguiente manera.

Código
  1.    private static String database="mibasededatos";
  2.    private static String user="miusuario";
  3.    private static String password="micontrasenia";
  4.    private static String host="midominio.com:3306";
  5.    private static String server="jdbc:mysql://"+host+"/"+database;
  6.  
  7. .....
  8.  
  9.       try {
  10.            Class.forName("com.mysql.jdbc.Driver");
  11.            conexion = DriverManager.getConnection(server,user,password);
  12.  
  13.            System.out.println("Conexión a base de datos "+server);
  14.  
  15.        } catch (ClassNotFoundException ex) {
  16.            System.out.println("Error cargando el Driver MySQL JDBC");
  17.        } catch (SQLException ex) {
  18.            System.out.println(ex);
  19.        }
  20.  

Esta es la excepción que muestra.

Código:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Connection timed out: connect

STACKTRACE:

java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:241)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at topo.JTopo.jButton1ActionPerformed(JTopo.java:147)
at topo.JTopo.access$000(JTopo.java:19)
at topo.JTopo$1.actionPerformed(JTopo.java:64)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)


** END NESTED EXCEPTION **



Last packet sent to the server was 2 ms ago.

Los datos de conexión están correctos, aunque tengo duda de como debo escribir el host al ser la aplicación de escritorio.
El JDBC también funciona correctamente.

Como podría hacerlo funcionar?, tengo que modificar algún archivo en mi hosting?, tengo que otorgar algún tipo de permiso del usuario que intenta conectar?, tengo que abrir algún puerto?.

Una solución que se me ocurre si lo anterior no es posible, es hacer peticiones a archivos .php por ejemplo desde mi aplicación de escritorio enviar por GET los datos a consultar, insertar o actualizar.

Código:
http://midominio/insertar.php?variable1=valor1&variable2=valor2

Como dato extra, les menciono que la aplicación la podría tener cualquier usuario, la aplicación no va dirigida a un grupo especifico de personas, lo menciono por si me dicen que tengo que agregar usuarios o ips.


Cualquier respuesta es buena xD.

EDITO

Problema real:
Mi problema fue que mi servidor tenía apagado el puerto para conexión remota. 3306

Solución:
Enviar un ticket para que el proveedor encendiera el puerto.

Saludos.


« Última modificación: 9 Julio 2013, 17:32 pm por Darhius » En línea

abc
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
¿Cómo conectar aplicación de escritorio a conexión remota mysql? [Solucionado]
« Respuesta #1 en: 14 Julio 2013, 12:19 pm »

El mensaje '¿Cómo conectar aplicación de escritorio a conexión remota mysql? [Solucionado]' fue bloqueado
Creo que el mensaje ha cumplido su función. Gracias por las indicaciones.
Leer reglas:
http://foro.elhacker.net/reglas


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines