2015-05-29 67 views
0

我有一個XAMPP與mysql(so localhost),我可以通過mysql workbench或phpymadmin連接到它沒有任何問題。 我使用Hibernate(也試過容易&醜陋的方式連接到我的DB)強制JDBC不使用代理

Class.forName("com.mysql.jdbc.Driver"); 
Connection cn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/testlink", "testlink", "testlink"); 
Statement st = cn.createStatement(); 
String query = "INSERT INTO `cfield_testprojects` (`field_id`, `testproject_id`, `display_order`, `location`, `active`, `required`, `required_on_design`, `required_on_execution`"; 
        st.executeUpdate(query); 

我試圖本地主機web應用程序:3306,無端口...我得到同樣的錯誤所有的時間:

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 packet 
s from the server. 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at com.mysql.jdbc.Util.handleNewInstance(Util.java:389) 
     at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1038) 
     at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:338) 
     at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2237) 
     at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2270) 
     at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2069) 
     at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794) 
     at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
     at com.mysql.jdbc.Util.handleNewInstance(Util.java:389) 
     at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399) 
     at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) 
     at java.sql.DriverManager.getConnection(DriverManager.java:571) 
     at java.sql.DriverManager.getConnection(DriverManager.java:215) 
     at BuildProject.doPost(BuildProject.java:148) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) 
     at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:283) 
     at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463) 
     at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: java.net.SocketException: Unknown proxy type : HTTP 
     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:396) 
     at java.net.Socket.connect(Socket.java:579) 
     at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:213) 
     at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:297) 
     ... 39 more 

我跟着關於這個在stackoverflow和其他地方的所有問題。 我在0.0.0.0上綁定了mysql ...我用useSystemProxies = false(或類似的東西)沒有工作。我只是想JDBC直接連接到我的本地數據庫...請幫助我要瘋了

沒有工作: MySQL Connect via proxy in Java

+0

您的連接字符串是否正確?我看到你寫了'testlink'作爲數據庫實例名和用戶名。 – dimm

+0

是的,當你看到堆棧跟蹤時顯然不是問題。但是ty – lordyoum

回答

0

這個問題發生在我面前,但我沒有解決這個問題的話,但後來經過我改變我的做法是從來沒有發生過, 夫婦的事情記下來,看它是否能夠解決您的問題:

  • 儘量使Connection對象,PreparedStatement的/語句(if任何)對象,ResultSet對象(如果有)作爲全局變量(我更喜歡私有)。 在構造函數中初始化Connection以及Driver的初始化(使用class.forName())。 如果需要,請在單獨的方法或主體內對查詢進行編碼。
  • 看看是否改變本地主機127.0.0.1幫助
  • 化妝肯定跳過網絡被註釋掉(即把#前)在MySQL配置文件(my.ini文件)
  • 中不要引用你的表名查詢字符串
  • 不要猶豫,更新jdk/jre/mysql-connector jar,他們可能可以解決這個問題。
+0

到目前爲止沒有解決它,我使用jdk/jre7,我必須在嘗試使用jdk8之前更新一些代碼,我會讓你知道的。謝謝你的方式。 – lordyoum

相關問題