2015-10-26 57 views
0

这是我必须测试我的数据库代码:为什么我的MYSQL不能和java一起工作?

package mysql; 
import java.sql.DriverManager; 
import java.sql.Connection; 
import java.sql.SQLException; 

public class JDBCExample { 

    public static void main(String[] argv) { 

    System.out.println("-------- MySQL JDBC Connection Testing ------------"); 

    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
    } catch (ClassNotFoundException e) { 
     System.out.println("Where is your MySQL JDBC Driver?"); 
     e.printStackTrace(); 
     return; 
    } 

    System.out.println("MySQL JDBC Driver Registered!"); 
    Connection connection = null; 

    try { 
     connection = DriverManager 
     .getConnection("jdbc:mysql://192.99.148.171:3306/aldorps_aldorpva_donation","aldorps_donation", "stan1234"); 

    } catch (SQLException e) { 
     System.out.println("Connection Failed! Check output console"); 
     e.printStackTrace(); 
     return; 
    } 

    if (connection != null) { 
     System.out.println("You made it, take control your database now!"); 
    } else { 
     System.out.println("Failed to make connection!"); 
    } 
    } 
} 

是我收到的错误是:

-------- MySQL JDBC Connection Testing ------------ 
MySQL JDBC Driver Registered! 
Connection Failed! Check output console 
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

The last packet successfully received from the server was 1.445.894.001.265 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2214) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:773) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at mysql.JDBCExample.main(JDBCExample.java:25) 
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

The last packet successfully received from the server was 1.445.894.001.261 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:341) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2137) 
    ... 12 more 
Caused by: java.net.ConnectException: Connection timed out: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at java.net.Socket.<init>(Unknown Source) 
    at java.net.Socket.<init>(Unknown Source) 
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:290) 
    ... 13 more 

现在我在想,这可能是因为3306端口心不是开我的电脑,但没有多大意义,因为这不是本地支持的权利?

你们中的任何一个人都知道该怎么做?

+0

无论从何处运行mysql服务器,端口'3306'都应在该服务器上打开。 – CrakC

+1

1445894001261毫秒是45年! – 2015-10-26 21:40:04

+0

检查了这一点 - http://stackoverflow.com/a/2985169/3681882 – CrakC

回答

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

与Java无关。这可能意味着有一个防火墙的方式。查看是否可以从客户端Telnet到该主机端口3306。

+0

没关系我已经找到了问题,只有我的vps ip被列入白名单,并且我试图从我的电脑连接到db。感谢您的帮助,虽然。 –

相关问题