# Verbindung mit Connector/J kann nicht aufgebaut werden



## Hannes23 (20. Sep 2005)

Hallo,

ich habe versucht anhand eines kleinen Testprogramms einen Datenbankzugriff auf eine MySQL-Datenbank mit dem MySQL-Connector/J aufzubauen.

Folgender Code:


```
import java.io.*;
import java.sql.*;

public class LoadDriver
  {

  public static void main( String[] argv )
    {
    String treiber=null, DbUrl=null ;

    //*** "Name des Datenbanktreibers eingeben
    treiber = "org.gjt.mm.mysql.Driver" ;
    //*** "Url der Databank eingeben *********
    //*** Server : linux
    //*** Service-Nummer : 3306
    //*** Bezeichnung der Datenbank : test1
    DbUrl = "jdbc:mysql://linux:3306/test" ;

     try {
         //*** Treiber laden ***********************************
         Class.forName( treiber ).newInstance();
          //*** Verbindung aufnehmen:    ************************
         Connection cn = DriverManager.getConnection( DbUrl, "root", "xxx" );
         BufferedReader in = new BufferedReader(
                             new InputStreamReader( System.in ) );
        String frage = null ;
        while( true )
            {  //*** Endlosschleife für die Abfragen *****************
             System.out.println( "Verbindung steht!!" );
             System.out.println( "Gib Deine Anfrage ein!!") ;
             System.out.println( "Beenden, wenn Du stop eingibst!!" ) ;
             frage = in.readLine() ;
             if( frage.equals( "stop" ) ) break ;
             try { //*** Anfrage  - Fehler abfangen **********************
                 Statement  st = cn.createStatement();
                 ResultSet  rs = st.executeQuery( frage );
                 ResultSetMetaData rsmd = rs.getMetaData();
                 int n, nmax = rsmd.getColumnCount();
                 System.out.println("----------- Antwort -------------------") ;
                 while( rs.next() )
                    { //**** Primitive Ausgabe    **********
                    for( n=1 ; n<=nmax ; n++ )
                       System.out.print( rs.getString( n ) + "--" ) ;
                    System.out.println() ;
                    }
                 System.out.println("----------- Antwort -------------------") ;
                 rs.close();
                 st.close();
                 } catch( SQLException ex )
                         {  System.out.println( ex );   }
            }
        cn.close();
        } catch( Exception ex ) {   System.out.println( ex );   }
   }
}
```

erzeugt die Fehlermeldung:


```
LoadDriver
com.mysql.jdbc.CommunicationsException: Communications link failure due to under
lying exception:

** BEGIN NESTED EXCEPTION **

java.net.UnknownHostException
MESSAGE: linux: linux

STACKTRACE:

java.net.UnknownHostException: linux: linux
        at java.net.InetAddress.getAllByName0(InetAddress.java:1011)
        at java.net.InetAddress.getAllByName0(InetAddress.java:981)
        at java.net.InetAddress.getAllByName(InetAddress.java:975)
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:137)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:283)
        at com.mysql.jdbc.Connection.createNewIO(Connection.java:2541)
        at com.mysql.jdbc.Connection.<init>(Connection.java:1474)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:264)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at LoadDriver.main(LoadDriver.java:24)


** END NESTED EXCEPTION **
```

nachdem das Programm über


```
java -cp .:/home/hannes/java/mysql-connector-java-3.1.10-bin.jar
```

aufgerufen wurde.

Kann mir da jemand weiterhelfen?

Danke, Hannes


Umgebung:
SuSE Linux 9.2
MySQL Connector/J 3.1.10
MySQL 4.0.21
Java version "1.4.2_08"


----------



## Bleiglanz (20. Sep 2005)

warum schreibst du linux statt localhost?

oder steht bei dir in /etc/hosts die zeile 
127.0.0.1 linux

oder: gibts bei dir im Netzwerk einen Server namens "linux"?


----------



## SnooP (20. Sep 2005)

kannst du auf linux:3306 per browser oder ping zugreifen?


----------



## Hannes23 (20. Sep 2005)

klar - localhost statt linux - macht ja auch keinen Sinn anders...danke!


----------

