2011-08-14 6 views
1

데이터를 읽으려면 MySQL 데이터베이스와 연결해야하는 Java 응용 프로그램을 만들려고합니다.Java를 통해 원격 데이터베이스에 액세스 할 수없는 이유는 무엇입니까?

몇 가지 자습서와 예제를 읽고 거의 모든 것을 시도했지만 데이터베이스에 액세스 할 수 없습니다.

try{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    con = DriverManager.getConnection("jdbc:mysql://myhost/test","databaseUser", "password"); 
} 
catch (Exception e){ 
    System.out.println(e); 
} 

스택 트레이스 :

com.mysql.jdbc.CommunicationsException : 통신 링크 실패로 인해 기본 예외 : 제가 DB에 연결이 사용하고있는 순간

** 중첩 예외 제외 **

com.mysql.jdbc.CommunicationsException 메시지 : 통신 링크 실패로 인해 기본 예외 :

**는 상자의 예외 **

java.io.EOFException 메시지를 BEGIN은 : 서버로부터 응답을 읽을 수 없습니다. 연결이 예기치 않게 손실되기 전에 4 바이트를 읽을 것으로 예상되며 0 바이트를 읽습니다.

스택 트레이스 :

java.io.EOFException는 : 서버로부터 응답을 읽을 수 없습니다. 연결이 예기치 않게 손실되기 전에 4 바이트를 읽을 것으로 예상되며 0 바이트를 읽습니다. com.mysql.jdbc.MysqlIO.readFully (MysqlIO.java:1997) at com.mysql.jdbc.MysqlIO.readPacket (MysqlIO.java:573) com.mysql.jdbc.MysqlIO.doHandshake (MysqlIO. java : 1044) at com.mysql.jdbc.Connection.createNewIO (Connection.java:2775) at com.mysql.jdbc.Connection. (Connection.java:1555) at com.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java:285) at java.sql.DriverManager.getConnection (DriverManager.java:582) at java.sql.DriverManager.getConnection (DriverManager.java:185) 사실상의 이벤트 System.SystemView.zoekKlant (SysteemView.java : 148) at sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 메소드) at sun.reflect.Native MethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)에서 java.lang.reflect.Method.invoke (Method.java:597)에서 org.jdesktop에서 . application.ApplicationAction.noProxyActionPerformed (ApplicationAction.java:662) org.jdesktop.application.ApplicationAction.actionPerformed (ApplicationAction.java:698)에서 javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:1995)에서 에서 javax의 . 에서 javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:242) 에서 javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387) 에서 swing.AbstractButton $ Handler.actionPerformed (AbstractButton.java:2318) javax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:236) java.awt.Component.processMouseEvent (Component.java:6288)에서 (javax.swing.JComponent.processMouseEvent (JComponent.java:3267)에서 ) java.awt.Component.dispatchEventImpl에서 java.awt.Container.processEvent (Container.java:2041) 에서 java.awt.Component.processEvent (Component.java:6053) (Component.java:4651) 에서 에서 java.awt.Container.dispatchEventImpl (Container.java:2099) at java.awt.Component.dispatchEvent (Component.java:4481) at java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:4577) at java.awt.LightweightDispatcher. processMouseEvent (Container.java:4238) (java.awt.LightweightDispatcher.dispatchEvent (Container.java:4168) at java.awt.Container.dispatchEventImpl (Container.java:2085) at java.awt.Window.dispatchEventImpl (EventQueue.java:643) at java.awt.EventQueue.access $ 000 (EventQueue) :(java.awt.Component.djava:4481) .java : 84) at java.awt.EventQueue $ 1.run (EventQueue.java:602)자바에서 java.security.AccessControlContext $ 1.doIntersectionPrivilege (AccessControlContext.java:87) 에서 java.security.AccessController.doPrivileged (기본 방법) 에서 java.awt.EventQueue $의 1.run (EventQueue.java:600) 에서java.awt.EventQueue $의 2.run에서 java.awt.EventQueue $의 2.run에서 .security.AccessControlContext $ 1.doIntersectionPrivilege (AccessControlContext.java:98) (EventQueue.java:616) (EventQueue.java:614) 에서 java.security.AccessController.doPrivileged (네이티브 메소드) at java.security.AccessControlContext $ 1.doIntersectionPrivilege (AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent (EventQueue.java:613) at java.awt. EventDispatchThread.pumpOneEventForFilters (EventDispa tchThread.java:269) java.awt.EventDispatchThread.pumpEvents에서 java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:174) 에서 java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread.java:184) 에서 (EventDispatchThread로. 자바 : java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:161에서 169) ) java.awt.EventDispatchThread.run (EventDispatchThread.java:122에서)

** END 상자의 예외 **

서버로 보낸 마지막 패킷은 16 밀리 초 전이었습니다.

더 많이 ...

그러나 나는 그것에 접근 할 수 없습니다.

여기서 어떻게 할 수 있습니까?

+1

스택 트레이스 (예외)를 알려주십시오 !!! – home

+0

예, 예외가 발생했다면 대신'e.printStackTrace()'를 실행하고 출력을 보여줍니다. –

+0

나는 공개 포럼에 데이터베이스 세부 정보를 게시하지 않습니다 ... – home

답변

2

phpmyadmin은 웹 응용 프로그램 데이터베이스의 프런트 엔드입니다. 그것은 데이터베이스가 아닙니다. phpmyadmin을 통해 Java의 데이터베이스에 액세스 할 수 없습니다. 데이터베이스 자체 (MySQL, BTW)에 직접 액세스해야합니다. 귀하의 호스팅 제공 업체가 허용하는지 확실하지 않습니다.

+0

정보를 제공해 주셔서 감사합니다. 그래서 데이터베이스에 저장된 데이터에 액세스하는 방법이 없다고 생각합니까? – Jef

+0

호스팅 제공 업체에 문의하십시오. 가능할 수도 있지만 의심 스럽습니다. 라이브 데이터에 액세스 할 필요가 없다면 phpmyadmin을 통해 데이터를 내보내고, 컴퓨터의 로컬 데이터베이스로 가져 와서 Java에서이 로컬 데이터베이스에 액세스 할 수 있습니다. –

관련 문제