2015-05-29 68 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

相关问题