2015-07-11 49 views
0
失败

我在hostinger.co.uk创建了一个MySQL数据库,现在我试图使数据库和我的Java应用程序之间的连接,并为我写了这个Java代码:的Java连接MySQL的

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 

public class DB_Connection { 

    public static void main(String arg[]) throws Exception { 
     makeConnection("u335300563_myName", "pass12345"); 
    } 

    public static void makeConnection(String username, String password) throws Exception { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection connection = DriverManager.getConnection("jdbc:mysql://u335300563_database",username,password); 
     PreparedStatement statement = connection.prepareStatement("select * from example"); 
     ResultSet result = statement.executeQuery(); 
     for(int i=1; result.next(); i++) 
      System.out.println(result.getString(i)); 
    } 
} 

但这是抛出一个例外是:

Exception in thread "main" 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(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:377) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1036) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:338) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2232) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44) 
    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:377) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at DB_Connection.makeConnection(DB_Connection.java:14) 
    at DB_Connection.main(DB_Connection.java:9) 
Caused by: java.net.UnknownHostException: u335300563_database 
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) 
    at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source) 
    at java.net.InetAddress.getAddressesFromNameService(Unknown Source) 
    at java.net.InetAddress.getAllByName0(Unknown Source) 
    at java.net.InetAddress.getAllByName(Unknown Source) 
    at java.net.InetAddress.getAllByName(Unknown Source) 
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:190) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:297) 
    ... 16 more 

所以请告诉是什么问题?

+0

您已经提供数据库名称作为主机名 – MadProgrammer

+0

从[驱动程序/数据源类名,URL语法和配置属性](http://dev.mysql.com/doc/connector-j/en/connector-j-reference-conf (连接URL应该类似于'jdbc:mysql:// [host1] [:port1]/[database]'(不包括附加属性)(但是这也假设驱动程序) – MadProgrammer

回答

0

造成的:的java.net.UnknownHostException:u335300563_database

计划未能确定MySQL数据库的主机。

在程序中,你必须通过正确的主机名或系统的IP地址托管你的mysql:

行之后需要更正从

DriverManager.getConnection("jdbc:mysql://u335300563_database" 
          ,username,password); 

DriverManager.getConnection("jdbc:mysql://<IP Address of MySQL DB server or correct hostname with port number >", 
          username,password);