PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keine Verbindung zu mysql moeglich



pfleidi85
08-03-2006, 16:19
Ich bin gerade am verzweifeln. Ich versuche mit folgendem Code auf eine mysql Datenbank (Ver 5.0.18) zu connecten:

package lala;

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

public class Start {

/**
* @param args
*/
public static void main(String[] argv) {
String treiber = null, DbUrl = null;

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

try {
// *** Treiber laden ***********************************
Class.forName(treiber).newInstance();
// *** Verbindung aufnehmen: ************************
// *** Der User peter mit Kennwort mysql möcht was wissen
Connection cn = DriverManager.getConnection(DbUrl, "jsp", "lala");
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()) { // **** SchauMerMal 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);
}
}
}

Ich habe sowohl den mysql jdbc Treiber in der version 3.1.12 und 5.0.0-beta ausprobiert.
Die Verbindung bricht aber jedesmal mit folgender Meldung ab:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1865 )
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:493 )
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:93 6)
at com.mysql.jdbc.Connection.createNewIO(Connection.j ava:2595)
at com.mysql.jdbc.Connection.<init>(Connection.java:1509)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonReg isteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at lala.Start.main(Start.java:27)


** END NESTED EXCEPTION **



Last packet sent to the server was 13 ms ago.

update: Ich verwende Arch Linux und das Java SDK 1.5 in Verbindung mit Eclipse 3.1.

Edit: Wie ich mittlerweile rausgefunden habe, funktioniert es mit der mysql von XAMPP problemlos, obwohl da die selbe version verwendet wird und ich meine config so angepasst hab, dass die optionen uebereinstimmen.
Da ich es gerne via paketmanagement installieren wuerde, stellt sich nun fuer mich die frage mit welchen optionen ich mysql kompilieren muss, damit das mit java funktioniert.