2013-02-26 1 views
0

매우 이상한 종류가 있습니다. 여기 문제. JDBC는 '127.0.0.1'을 사용하여 mysql 서버에 연결하지만 실제 IP-ADDRESS를 사용하면 영원히 멈추고 일부 소켓 예외가 throw됩니다.JDBC는 'jdbc : mysql : //127.0.0.1 : 3306/xxx'와 연결되지만 'jdbc : mysql : //172.29.198.142 : 3306/xxx'에 대해 소켓 예외가 발생합니다.

"jdbc : mysql : //127.0.0.1 : 3306/트리플 엑스"; 매력처럼 작동합니다 ....

"jdbc : mysql : //172.29.198.142 : 3306/xxx"; 아래 추한 예외 던졌습니다 ... !!

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117) 
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:350) 
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2408) 
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445) 
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230) 
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813) 
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
got null 
com.xxxxxxxx.server.test.PersistTest 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334) 
at java.sql.DriverManager.getConnection(DriverManager.java:582) 
at java.sql.DriverManager.getConnection(DriverManager.java:185) 
at com.lntinfotech.server.test.PersistTest.testConnectionJDBC(PersistTest.java:204) 
at com.lntinfotech.server.test.PersistTest.main(PersistTest.java:56) 
Caused by: java.net.SocketException: Malformed reply from SOCKS server 
at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:90) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:429) 
at java.net.Socket.connect(Socket.java:529) 
at java.net.Socket.connect(Socket.java:478) 
at java.net.Socket.<init>(Socket.java:375) 
at java.net.Socket.<init>(Socket.java:218) 
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259) 
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300) 
... 16 more 

도와주세요 !!!!!!

미리 감사드립니다 ......

+0

클라이언트가 공용 MySQL IP 주소와 포트의 조합에 대한 액세스를 차단하는 SOCKS 프록시를 사용하도록 구성되었습니다. 이 액세스를 허용하도록 프록시를 구성해야합니다. – Perception

답변

0

네트워크 포트를 열어 확인하십시오. 간단한 테스트를 사용하면 해당 PC 또는 네트워크의 다른 PC에서 mySql 쿼리 브라우저를 사용할 수 있지만 localhost 또는 127.0.0.1이 아닌 IP 주소를 사용하십시오 ... 연결할 수 있으면 java 라이브러리 또는 java 코드를 확인할 수 있습니다. 그럴 수 없다면 안티 바이러스 또는 방화벽이 해당 포트를 차단하는지 확인할 수 있습니다.