与MySQL的Java连接失败

与MySQL的Java连接失败,java,mysql,jdbc,Java,Mysql,Jdbc,我已经在hostinger.co.uk创建了一个MySQL数据库,现在我正在尝试在数据库和我的Java应用程序之间建立连接,为此我编写了以下Java代码: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class DB_Connection { public static vo

我已经在hostinger.co.uk创建了一个MySQL数据库,现在我正在尝试在数据库和我的Java应用程序之间建立连接,为此我编写了以下Java代码:

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
线程“main”com.mysql.jdbc.exceptions.jdbc4.CommunicationsException中的异常:通信链路故障 成功发送到服务器的最后一个数据包是0毫秒前的。驱动程序尚未从服务器收到任何数据包。 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于com.mysql.jdbc.Util.HandleneInstance(Util.java:377) 位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1036) 在com.mysql.jdbc.MysqlIO上(MysqlIO.java:338) 位于com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2232) 位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265) 位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064) 位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:790) 位于com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:44) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于com.mysql.jdbc.Util.HandleneInstance(Util.java:377) 位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395) 位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) 位于java.sql.DriverManager.getConnection(未知源) 位于java.sql.DriverManager.getConnection(未知源) at DB_Connection.makeConnection(DB_Connection.java:14) at DB_Connection.main(DB_Connection.java:9) 原因:java.net.UnknownHostException:u335300563_数据库 在java.net.Inet6AddressImpl.lookupAllHostAddr(本机方法) 位于java.net.InetAddress$1.lookupAllHostAddr(未知源) 位于java.net.InetAddress.getAddressesFromNameService(未知源) 位于java.net.InetAddress.getAllByName0(未知源) 位于java.net.InetAddress.getAllByName(未知源) 位于java.net.InetAddress.getAllByName(未知源) 位于com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:190) 位于com.mysql.jdbc.MysqlIO(MysqlIO.java:297) ... 还有16个 那么请告诉我问题出在哪里

原因:java.net.UnknownHostException:u335300563_数据库

程序无法识别mysql DB的主机

在程序中,您必须传递承载mySQL的系统的正确主机名或IP地址:

下面的行需要从

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

DriverManager.getConnection(“jdbc:mysql:/”,
用户名、密码);

您已经从中提供了数据库名作为主机名,连接URL应该类似于jdbc:mysql://[host1][:port1]/[database](不包括其他属性)(但这也假设驱动程序)
DriverManager.getConnection("jdbc:mysql://<IP Address of MySQL DB server or correct hostname with port number >",
                            username,password);