# Probleme mit Treiber (connector)



## Guest (24. Nov 2005)

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:


```
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!


----------



## Guest (25. Nov 2005)

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.


----------



## bronks (25. Nov 2005)

Anonymous hat gesagt.:
			
		

> ```
> ...
> Class.forName("com.myql.jdbc.Driver");
> ...
> ...


Das liegt einfach nur daran, daß Du den Treibernamen falsch geschrieben hast..  "myql"<>"mysql"


----------



## Gast (25. Nov 2005)

danke für den tipp. leider geht es trotzdem nicht.
Fehlermeldung: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver


----------



## Guest (27. Nov 2005)

keiner eine idee was da falsch läuft?
hab mich schon im forum umgesehen und irgendwie scheint nichts zu funktionieren  :cry:


----------



## bronks (27. Nov 2005)

Als Notlösung mach folgendes: Entpacke das JarFile in den SrcOrdner


----------



## Gast (27. Nov 2005)

Src ordner? meinst du den ordner vom java compiler?


----------



## bronks (27. Nov 2005)

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.


----------



## Guest (28. Nov 2005)

bronks hat gesagt.:
			
		

> Gast hat gesagt.:
> 
> 
> 
> ...


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


----------



## Guest (29. Nov 2005)

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:


```
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);
		}
	}
}
```


----------



## Guest (29. Nov 2005)

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!


----------



## Guest (29. Nov 2005)

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


----------



## Guest (11. Jan 2006)

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:


```
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");
    }
      
   }
}
```


----------



## Guest (11. Jan 2006)

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.


----------



## Guest (12. Jan 2006)

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!


----------



## Bleiglanz (12. Jan 2006)

versuch mal:

```
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?


----------



## Guest (12. Jan 2006)

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.


----------



## Guest (12. Jan 2006)

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.


----------



## Bleiglanz (13. Jan 2006)

und was hast du bei "meineIPAdresse" eingetragen

127.0.0.1


----------



## Gast (13. Jan 2006)

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.


----------



## Gast (13. Jan 2006)

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";


----------

