*Markus: Keine Verbindung mit JDBC zu Mysql

Beitrag lesen

Hallo,

weder mit Spring, noch auf konventionellem Weg schaffe ich es, mit JDBC zu meiner lokalen MySQL-Datenbank eine Verbindung herzustellen. Ich habe schon verschiedene Treiberversionen benutzt o.ä. aber ohne Erfolg.
Hier der Testcode:

  
public class MysqlConnector  {  
  public static void main(String args[]){  
    try {  
      Statement stmt;  
      ResultSet rs;  
  
      //Register the JDBC driver for MySQL.  
      Class.forName("com.mysql.jdbc.Driver");  
      //Define URL of database server for  
      String url = "jdbc:mysql://localhost:3306/test";  
//      String url  
      Connection con = DriverManager.getConnection(url, "root", "testpwd");  
//    Connection con = DriverManager.getConnection(url);  
      //Display URL and connection information  
      System.out.println("URL: " + url);  
      System.out.println("Connection: " + con);  
  
      //Get a Statement object  
      stmt = con.createStatement();  
  
      rs = stmt.executeQuery("SELECT testfeld FROM Preis");  
      while (rs.next())   {  
       System.out.println(rs.getString(1));  
      }  
  
      con.close();  
    }catch( Exception e ) {  
      e.printStackTrace();  
    }  
  }  
}  

Hier die Fehlerausgabe:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
 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:2103)
 at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
 at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
 at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
 at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
 at java.sql.DriverManager.getConnection(DriverManager.java:582)
 at java.sql.DriverManager.getConnection(DriverManager.java:185)
 at MysqlConnector.main(MysqlConnector.java:20)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
 at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
 at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:666)
 at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1069)
 at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
 ... 12 more
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
 at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2431)
 at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:590)
 ... 14 more

Ihr seid meine letzte Hoffung. Ich habe gestern den ganzen Abend damit verbracht eine Lösung zu finden, nur dieses Problem haben offensichtlich viele, aber ich fand keine Lösungen dazu.

Eine Verbindung zu MySQL ist möglich:

markus@arch $ telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

ODBC brauche ich nicht, da ich auf Linux arbeite, wie man sieht.

Markus