无法从eclipse创建与MySQL的连接

时间:2018-04-02 01:06:51

标签: mysql eclipse jdbc database-connection mysql-connector

我尝试使用以下代码从eclipse连接到MySQL。但是,当我尝试编译代码时,我收到一个错误(如代码后所示)。请帮忙。我是新手。我试过改变它但是无法让它运转起来。 谢谢!

      public static void main(String[] args) {

    // creates three different Connection objects
    Connection conn = null;
    Connection conn2 = null;
    Connection conn3 = null;

    try {
        // connect way #1
        String user = "user";
        String password = "pwd";

        conn = DriverManager.getConnection ("jdbc:mysql://\" + host + \"/feedback?\" + \"user=\" + user + \"&password=\" + password+\"useSSL=false", "meher", "meher");
        if (conn != null) {
            System.out.println("Connected to the database test1");
        }
   } catch (SQLException ex) {
        System.out.println("An error occurred. Maybe user/password is invalid");
        ex.printStackTrace();
    }
}

}

错误消息:

      >  An error occurred. Maybe user/password is invalid
         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(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2188)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2221)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2016)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at 
 `enter code here`sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
    at 
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at meher.main(meher.java:29)


>    Caused by: java.net.UnknownHostException: " + host + "
>>  at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
    at java.net.InetAddress.getAllByName(InetAddress.java:1192)
    at java.net.InetAddress.getAllByName(InetAddress.java:1126)
    at 
    com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:188)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:301)
    ... 15 more

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

原因在这一行解释

Caused by: java.net.UnknownHostException: " + host + "

问题在于URL字符串格式,因为主机名实际上就是“由...引起的”。

试试这个

String url = String.format("jdbc:mysql://%s/feedback?user=%s&password=%s&useSSL=false", user, password)
conn = DriverManager.getConnection (url, "meher", "meher");

答案 1 :(得分:0)

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

上面说yor mysql没有运行。如果您正在使用WAMP服务器的XAMP,那么首先从那里启动mysql服务器。 在上面尝试这个简单的例子

public static void main(String[] args) {


    Connection conn = null;

    try {
        // connect way #1
        String user = "user";
        String password = "pwd";

conn= DriverManager
        .getConnection("jdbc:mysql://localhost:3306/dbname",user, password);
          if (conn != null) {
            System.out.println("Connected to the database test1");
        }
   } catch (SQLException ex) {
        System.out.println("An error occurred. Maybe user/password is invalid");
        ex.printStackTrace();
    }

}

例如

https://www.mkyong.com/jdbc/how-to-connect-to-mysql-with-jdbc-driver-java/