java+mysql

E

EyesOnly1

Hi Leute,

hab nen prob...

will mit java auf ne mysql datenbank zugreifen ...geht aber leider net...

Verwnde den mysql-connector-java.

vllt kann mir jemand helfen hier der Quelltext u. die fehler Meldung

-----------------------------------------------------------------------------------------------------------------
import java.io.PrintWriter;
import java.sql.*;

public class db {


public static void main(String[] args) {


// Diese Eintraege werden zum
// Verbindungsaufbau benoetigt.
final String hostname = "localhost";
final String port = "3306";
final String dbname = "es";
final String user = "root";
final String password = "db";
String aus = null;


Connection conn = null;

try {
System.out.println("* Treiber laden");

Class.forName("com.mysql.jdbc.Driver");
// org.gjt.mm.mysql.Driver
System.out.println("* Treiber geladen");


DriverManager.setLogWriter( new PrintWriter(System.out) );
}
catch (Exception e) {
e.printStackTrace();
}
try {

System.out.println("* Verbindung aufbauen...echt?");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/es","root","db");

System.out.println("* Verbindung aufgebaut");

Statement stmt = conn.createStatement();


System.out.println("* Datenbank-Verbindung beenden");
conn.close();
}
catch (SQLException sqle) {
System.out.println("SQLException: " + sqle.getMessage());
System.out.println("SQLState: " + sqle.getSQLState());
System.out.println("VendorError: " + sqle.getErrorCode());
sqle.printStackTrace();

}

} // ende: public static void main()

} // ende: public class db



------------------------------------------

Fehlermeldung


* Treiber laden
* Treiber geladen
* Verbindung aufbauen...echt?
DriverManager.getConnection("jdbc:mysql://localhost:3306/es")
trying driver[className=com.mysql.jdbc.Driver,com.mysql.jdbc.Driver@18d107f]
java.sql.SQLException: Communication failure during handshake. Is there a server running on localhost:3306?
at com.mysql.jdbc.MysqlIO.init(Unknown Source)
at com.mysql.jdbc.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.jdbc2.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at db.main(db.java:39)
getConnection failed: java.sql.SQLException: Communication failure during handshake. Is there a server running on localhost:3306?
SQLException: Communication failure during handshake. Is there a server running on localhost:3306?java.sql.SQLException: Communication failure during handshake. Is there a server running on localhost:3306?
at com.mysql.jdbc.MysqlIO.init(Unknown Source)
at com.mysql.jdbc.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.jdbc2.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at db.main(db.java:39)

SQLState: null
VendorError: 0


--------------------------------------------------------

MFG
 
hi EyesOnly1,

check mal bitte, ob deine db laeuft! siehe:
>java.sql.SQLException: Communication failure during handshake. Is there a server >running on localhost:3306?
dein programm ist ok, habe ich gerade getestet.
es fuehrt kein statement aus, soll es aber wohl auch nicht.
wie gesagt, die db-connection funktioniert bei mir.

mfg
waterhouse
 
Hi...
schonmal danke für ausprobieren...

db läuft.... komme per administrations-tool drauf...
dienst läuft

hab mir von mysql den 4.1 Server drauf gemacht... konfiguriert... usw und komme wie gesagt per tool drauf...

muss ich da irgendwie noch was aktivieren?


ist richtig... sollte erma keine abfrage ausführen...

db soll später aufn server laufen und det java prog im netz zur Verfügung stehn...
 
hi..

hab die class MysqlDataSource(); gerad in verwendung...

bekomme irgendwie keinen connect zur db...

hab ich nen fehler bei der install der db gemacht?
irgendwelche parameter?

hab von mysql den server 4.1 installiert "typical" und bin den anweisungen gefolgt.


mfg
 
Hallo!

Heißt die Datenbank mit der du dich Verbinden willst auch es ? Hast du die schon angelegt?
Kommst du mit dem Mysql Konsolen Client auf die Datenbank?

Gruß Tom
 
Hi Leutz,


wie seieht das denn mit der installation aus, muss ich da irgendwas besoderes einstellen...?

Hab die Installation normal durchgeführt, muss noch bestimmte Software installt sein?
Oder irgendwas aktiv sein oder aktiviert werden?

mfg
 
hi EyesOnly1,

versuche mal bitte folgendes:
mache eine konsole auf
starte den mysql-client (mysql), das programm liegt im verzeichnis /mysql/bin
gebe ein show variables like 'connect_timeout' ;
jetzt solltest du so etwas sehen
mysql> show variables like 'connect_timeout';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| connect_timeout | 2 |
+-----------------+-------+
1 row in set (0.00 sec)

der standartwert ist 5

laut mysql-referenz kommt die handshake-error-meldung wenn der verbindungsaufbau zu lange dauert.
vielleicht kannst du den wert hochsetzten und damit das problem beheben.
set global connect_timeout = 10;
leider kann ich deinen fehler bei mir nicht simulieren, muss also raten.

mfg waterhouse

ps: hast du ne firewall laufen, die den port blockiert?
 
Danke für den Tipp mit dem timeout... hab ich auf 10 gesetzt... hat aber leider nicht geholfen... nein hab keine FW an die den Port blocken könnte...

Das Seltsame ist per MYSQL tools komm ich drauf... und auch per konsole aber net per java prog... hab auch alle libs importiert die ich brauch...

aber keine ahnung wworans liegt...

hier noch nen paar Eigenschaften...

Win 2000 Domain
ich selber Domain-Admin...
Win XP auf meinem Rechner

Aber denke net das das was mit der Domain zu tun hat...

mfg


vllt hat ja jemand noch nen Trick oder Tipp
 
Zuletzt bearbeitet von einem Moderator:
Zurück