Hallo,
ich habe versucht anhand eines kleinen Testprogramms einen Datenbankzugriff auf eine MySQL-Datenbank mit dem MySQL-Connector/J aufzubauen.
Folgender Code:
erzeugt die Fehlermeldung:
nachdem das Programm über
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"
ich habe versucht anhand eines kleinen Testprogramms einen Datenbankzugriff auf eine MySQL-Datenbank mit dem MySQL-Connector/J aufzubauen.
Folgender Code:
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:
Code:
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
Code:
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"