# MySQL Java Datenbankverbindung Fehler



## DayXtry (2. Dezember 2005)

Hi Leutz,
 wir haben Probleme mit der Serverangabe beim Connecten zu MySQL. (er konnte sich nicht zur Datenbank verbinden), aber Treiber usw. stimmt. Es liegt warscheinlich am Servername, wir haben auch schon localhost mit Port getestet,  aber auch net.

 Hier mal der Code:

```
Connection connection = null;
 	  try {
 		  // Load the JDBC driver 
 		  String driverName = "java.sql.Driver";
 		  Class.forName(driverName);
 		  // Create a connection to the database
 		  String serverName = "C:/wamp/mysql/data";
 		  String mydatabase = "test";
 		  String url = "jdbc:mysql://" + serverName +  "/" + mydatabase; // a JDBC url
 		  String username = "root";
 		  String password = "";
 		  connection = DriverManager.getConnection(url, username, password);
 		  } 
 	  catch (ClassNotFoundException e) {
 		  System.out.println("Could not find the database driver.");
 		  }
 	  catch (SQLException e) {
 		  System.out.println("Could not connect to the database.");
 				  }
 		  }
```
 
 Unser MySQL Server läuft über WAMP.

 MfG DayXtry

 PS.: Im Vorraus schon mal Danke für eure Hilfe!


----------



## javaprogger1987 (2. Dezember 2005)

Also die Serverangabe ist schonmal falsch 
  Da musst du schon localhost:3306 hinschreiben, wenn du den MySql-Server lokal laufen hast, andernfalls die Ip vom Server .Außerdem ist dein root-Passwort etwa "" bzw. [null]? Wenn ja würd ich das mal ändern...

  Bei mir sieht String URL so aus:

```
String url = "jdbc:mysql://localhost:3306/" +mydatabase;
```
 
  Sollte damit gehen...

  MfG

  Tobias


----------



## DayXtry (2. Dezember 2005)

also wie schon oben erwähnt, haben wirs mit localhost und Port schon getestet.
 Und das mit m PWD is im Moment eigentlich auch egal.


----------



## javaprogger1987 (2. Dezember 2005)

Ups das mit dem Port hab ich überlesen sry...

 Bekommst du denn ne Fehlermeldung?

//edit: Ich seh grad du benutzt nur "java.sql.Driver" als Treiber.. Das ist aber nur ein Interface, brauchst doch eigentlich noch nen Treiber der das implementiert oder?

Ich benutz "com.mysql.jdbc.Driver", bekommst du hier:
http://dev.mysql.com/downloads/connector/j/3.1.html


----------



## DayXtry (2. Dezember 2005)

gibts da eigentlich auch n standard Treiber?
 Und "java.sql.Driver" wird als Treiber anerkannt, sonst würde er nicht in

```
catch (SQLException e) {
 		  System.out.println("Could not connect to the database.");
 				  }
```
 springen sondern in:

```
catch (ClassNotFoundException e) {
 		  System.out.println("Could not find the database driver.");
 		  }
```
 
 Aber danke schon mal für die schnelle Antwort.


----------



## javaprogger1987 (2. Dezember 2005)

Lass dir doch mal den genauen Fehler ausgeben, änder

```
catch (SQLException e)  
{
  System.out.println("Could not connect to the database.");
}
```
in

```
catch (SQLException e)  
 {
  e.printStackTrace( System.out );
 }
```

Soweit ich weiß gibts keinen Standardtreiber aber ich lern gerne dazu


----------



## DayXtry (2. Dezember 2005)

ok, jetzt kommt:
 java.io.PrintStream@26e431


----------



## javaprogger1987 (2. Dezember 2005)

Öhm.. sicher das du nicht ausversehen

```
System.out.println( System.out );
```
geschrieben hast?
Es sollte 
	
	
	



```
e.printStackTrace( System.out );
```
 sein.


----------



## DayXtry (2. Dezember 2005)

ok, alles klar *G*,...es gibt wohl doch keine Standardtreiber *G*,...

 Wie bind ich den Treiber eigentlich nachher in CLASSPATH ein?


----------



## javaprogger1987 (2. Dezember 2005)

Unter WindowsXP:

 1. Start -> Systemsteuerung -> System.
 2. Tab "Erweitert" -> Umgebungsvariablen.
 3. Da kannste dann Classpath ändern -> ; + Libary Pfad anhängen

Also z.B. das hinten dran fügen (das ; nur wenn am Ende noch keins ist):

```
;C:\work\mysql\mysql-connector-java-3.1.10-bin.jar
```


----------



## DayXtry (2. Dezember 2005)

OK, vielen DANKE,...es geht
  Habs jetzt so:

```
import java.sql.*;
  
  
  public class Untitled1 {
    public Untitled1() {
  
    }
  
    public static void main(String[] args)
    {
  	Connection connection = null;
  	  try {
  		  // Load the JDBC driver
  		  String driverName = "org.gjt.mm.mysql.Driver";
  		  Class.forName(driverName);
  		  // Create a connection to the database
  		  String serverName = "localhost:3306";
  		  String mydatabase = "test";
  		  String url = "jdbc:mysql://" + serverName +  "/" + mydatabase; // a JDBC url
  		  String username = "root";
  		  String password = "123";
  		  connection = DriverManager.getConnection(url, username, password);
  		  
  		  System.out.println("Erfolg");
  		  }
  	  catch (ClassNotFoundException e) {
  		  System.out.println("Could not find the database driver.");
  		  }
  	  catch (SQLException e) {
  		  System.out.println("Could not find the database.");
  				  }
  		  }
  
  
  
    }
```
 
  und halt noch den CLASSPATH.


----------



## javaprogger1987 (2. Dezember 2005)

Eins noch, in der Version von JConnector (3.1) solltest du als driverName lieber:

```
String driverName = "com.mysql.jdbc.Driver";
```
verwenden, der andere Name ist noch aus einer alten Version und wird vllt. in Zukunft nicht mehr unterstützt..


----------



## Thomas Darimont (2. Dezember 2005)

Hallo!



> e.printStackTrace( System.out );


 ... ist unnötig.
 Ein einfaches 


> e.printStackTrace();


 reicht hier vollkommen...

 Gruss Tom


----------

