Probleme mit Treiber (connector)

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo!

ich habe ein großes problem: hab mir mysql 5 gedownloadet und installiert ( das läuft normal )
dann habe ich mir den connector treiber mysql-connector-java-3.1.11-bin runtergeladen. das war ein ganzer ordner mit daten drinnen. ich wollte anschließend den treiber in den classpath aufnehmen, indem ich
set CLASSPATH=...;C:\Dokumente und Einstellungen\dominik\Desktop\mysql-connector-java-3.1.11\mysql-connector-java-3.1.11.jar
in die dos konsole eingegeben habe - das hat er anscheinend auch genommen ( zumindest habe ich keine fehlermeldung bekommen )

dann habe ich ein testprogramm geschrieben:

Code:
import java.sql.*;

public class JDBC 
{
	public static void main(String[] argv)
	{
		try
		{
			Class.forName("com.myql.jdbc.Driver");
		} catch(Exception e) {
			System.err.println("Treiber konnte nicht geladen werden");
		}
	}
}

leider findet es den treiber nicht. woran könnte das liegen?

danke im voraus!
 
Vermeide Leerzeichen in Classpath oder setze entsprechende Anführungszeichen
z.B. "C:\Dokumente und Einstellungen\dominik\Desktop\mysql-connector-java-3.1.11\mysql-connector-java-3.1.11.jar"
Am besten entferne den Treiber aus Classpath, da hat er nichts zu suchen. Übergebe ihn stattdessen beim Start
des Programms auf der Console.

java -cp .;./mysql-connector-java-3.1.11.jar; ....

oder noch besser in Manifestdatei der Jar-Datei deiner Anwendung.
 
Anonymous hat gesagt.:
Code:
...
			Class.forName("com.myql.jdbc.Driver");
...

leider findet es den treiber nicht. woran könnte das liegen?
Das liegt einfach nur daran, daß Du den Treibernamen falsch geschrieben hast.. "myql"<>"mysql"
 
danke für den tipp. leider geht es trotzdem nicht.
Fehlermeldung: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
 
keiner eine idee was da falsch läuft?
hab mich schon im forum umgesehen und irgendwie scheint nichts zu funktionieren :cry:
 
Gast hat gesagt.:
Src ordner? meinst du den ordner vom java compiler?
Das ist der Ordner mit dem Quellcode. Kopier da den den ganzen Verzeichnisbaum mit "com/mysql ..." einfach rein. In dem Ordner mit den ClassDateien mußt Du das genauso reinkompieren, falls Du dafür einen eigenen ordner hast.
 
bronks hat gesagt.:
Gast hat gesagt.:
Src ordner? meinst du den ordner vom java compiler?
Das ist der Ordner mit dem Quellcode. Kopier da den den ganzen Verzeichnisbaum mit "com/mysql ..." einfach rein. In dem Ordner mit den ClassDateien mußt Du das genauso reinkompieren, falls Du dafür einen eigenen ordner hast.
Ist nicht dein Ernst, oder? :autsch:

Hast du den Treiber wirklich entpackt? Die Jar Datei der 3.1.11er Version ist eigentlich mysql-connector-java-3.1.11-bin.jar
und ist in mysql-connector-java-3.1.11.zip drin.

Wenn mysql-connector-java-3.1.11-bin.jar in dem Verzeichnis, wo du dein Programm startest, dann
brauchst du es nur beim Start anzugeben.

java -cp .;mysql-connector-java-3.1.11-bin.jar;... package.Hauptklasse
bzw. beim Compilieren
javac -classpath .;mysql-connector-java-3.1.11-bin.jar;... package\Hauptklasse.java
 
ok, ich hab die datei mysql-connector-java-3.1.11-bin.jar jetzt in den class ordner meines projektes geschoben.
wie rufe ich es jetzt aber mit einem java programm auf?

das geht jetzt nicht:

Code:
import java.sql.*;

public class JDBC 
{
	public static void main(String[] argv)
	{
		try
		{
			Class.forName("mysql-connector-java-3.1.11-bin.jar");
		} catch(Exception e) {
			System.err.println("Nicht gefunden    " + e);
		}
	}
}
 
ok, tschuldigung. hab da was falsch verstanden.

jetzt hab ich wie schon ober erwähnt die datei mysql-connector-java-3.1.11-bin.jar in den klassenordner geschoben und das hier in dos ausgeführt:

C:\Dokumente und Einstellungen\dominik\Desktop>java -cp .;C:\Dokumente und Einst
ellungen\dominik\Desktop\mysql-connector-java-3.1.11-bin.jar JDBC
Exception in thread "main" java.lang.NoClassDefFoundError: und

findet es jetzt die java datei nicht, oder wie hab ich das zu verstehen?

danke im voraus!
 
Liest du die Antworten überhaupt?
Anonymous hat gesagt.:
Vermeide Leerzeichen in Classpath oder setze entsprechende Anführungszeichen
...

java -cp .;"C:\Dokumente und Einstellungen\dominik\Desktop\mysql-connector-java-3.1.11-bin.jar" JDBC

oder, da es im gleichen Verzeichnis ist, ohne Pfad

java -cp .;mysql-connector-java-3.1.11-bin.jar JDBC
 
so jetzt gehts, danke nochmal. jetzt habe ich aber ein weiteres problem. Ich muss ja das Passwort und den Usernamen bei dem verbindungsaufbau angeben: verbindung = DriverManager.getConnection(db,user, pw);

allerdings habe ich bei der installation von mysql 5 gar keinen usernamen angegeben. nur ein root passwort. jetzt weiß ich nicht was ich machen soll.

hier noch mal der code:

Code:
import java.sql.*;

public class JDBC 
{
  public static void main(String[] argv)
  {
  	try
    {
      Class.forName("com.mysql.jdbc.Driver");
      System.out.println("hallo");
    } catch(Exception e) {
      System.err.println("Nicht gefunden    " + e);
    }
    
    Connection verbindung = null;
    String db = "jdbc:mysql://localhost/dominik";
    String user = "root"; // keine ahnung was hier hingehört
    String pw = "root";
    
    try {
        verbindung = DriverManager.getConnection(db,user, pw);
    } catch(Exception e) {
        System.err.println("Fehler bei verbindung");
    }
      
   }
}
 
hab da noch etwas vergessen. die exception:



Fehler bei verbindung mit Datenbank: com.mysql.jdbc.CommunicationsException: Com
munications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.UnknownHostException
MESSAGE: localhost: localhost

STACKTRACE:

java.net.UnknownHostException: localhost: localhost
at java.net.InetAddress.getAllByName0(InetAddress.java:1128)
at java.net.InetAddress.getAllByName0(InetAddress.java:1098)
at java.net.InetAddress.getAllByName(InetAddress.java:1061)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.ja
va:137)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
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
:266)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at JDBC.main(JDBC.java:21)


** END NESTED EXCEPTION **



Last packet sent to the server was 15 ms ago.
 
hab einen anderen weg, dass passwort und den usernamen zu finden. hab mich in mysql eingeloggt und die datenbank mysql geöffnent.

dort gibt es einen tabelle user. die habe ich gehöffnet und folgendes kam:

+-------------------------------------------+
| Password |
+-------------------------------------------+
| *706276B38023918B28D251C4C9F9765B97737353 |
+-------------------------------------------+


+------+
| user |
+------+
| root |
+------+


ok, das habe ich in meinen java code eingegeben. leider geht es noch immer nicht. :? 🙁

bitte hilf mir. ich brauche das für ein schulprojekt

danke im voraus!
 
versuch mal:
Code:
String db = "jdbc:mysql://127.0.0.1/dominik";
String user = "root"; 
String pw = "";  // ist unsicher, aber die default-Einstellung

hast du auch eine Datenbank "dominik" angelegt?
 
ja.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| dominik |
| mysql |
| test |
+--------------------+
4 rows in set (0.09 sec)


die datenbank dominik enthält auch eine tabelle. ist aber nicht so wichtig beim verbindugsaufbau, schätze ich.
 
wenn ich es so mache:

String db = "jdbc:mysql://MeineIpAdresse/dominik";

dann bekomme ich diese exception:

Fehler bei verbindung mit Datenbank: com.mysql.jdbc.CommunicationsException: Com
munications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: java.net.SocketException: Unrecognized Windows Sockets error: 10106: cr
eate

STACKTRACE:

java.net.SocketException: java.net.SocketException: Unrecognized Windows Sockets
error: 10106: create
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.ja
va:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
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
:266)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at JDBC.main(JDBC.java:21)


** END NESTED EXCEPTION **



Last packet sent to the server was 16 ms ago.
 
127.0.0.1

das ging nicht, also hab ich mit ipconfig meine ip-adresse herausgefunden und sie dann halt im programm verwendet.

geht aber leider auch nicht. nur die exception hat sich geändert.
 
problem gelöst. danke nochmal für eure hilfe!

komischer weise funktioniert es unter netbeans, aber unter JOE nicht. so gings: String db = "jdbc:mysql://localhost/dominik";
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben