# Java und MySQL



## Torox (4. Dezember 2003)

*import java.sql.*;

public class re {
	public static void main( String[] argv ) {

		String name="Torox";
		String pass="...";
try {
  // Anhand-Klassen name des Mysql-Treibers ein Object instanzieren
  Class.forName("org.gjt.mm.mysql.Driver");
  // verbindung öffnen per server / Datenbank /user / pass
  Connection conn = DriverManager.getConnection( "jdbc:mysql://freesql.org/Torox",name,pass);
 } catch (SQLException e) {
 	System.out.println(e);
    // Hier eventuelle SQL Ausnahmen abfagen
 } catch (ClassNotFoundException e) {
 	System.out.println(e);
   // Hier die Ausnahme abfagen die geworfen 
   // wird falls für den Treiber name keine Klasse 
   // instanziert werden konnte
}


	}
}
* 

Also dies ist mein kleines test Progie. Also verbinden tut er anscheinend, weil es läner dauert bis die Fehlermeldung kommt:

*java.sql.SQLException: Invalid authorization specification,  message from server
: "Access denied for user: 'Torox@p5091AAA7.dip.t-dialin.net' (Using password: Y
ES)"
Press any key to continue...* 

Und nun meine Frage wieso macht er aus dem Loginnamen Torox--> 'Torox@p5091AAA7.dip.t-dialin.net'  Das ist glaub ich der fehler. Freesql akzeptiert nur den namen Torox ohne absenderadresse.

An FreeSql kanns auch nicht liegen mit anderen programmen und php komm ich drauf. Auch von meinem Lokalen rechner. Wie kriege ich also eine Verbindung her? Ihr könnt euch gern bei freesql ne datenbank einrichten geht fix und ist ganz nützlich zu testzwecken.
Wäre cool wenn mir jemand helfen könnte 
  Danke Torox


----------



## SixDark (4. Dezember 2003)

Das ist glaub ich ganz einfach geklärt!

In MySQL sind Benutzer angelegt, z.B. Torox. Dieser Benutzer muß jedoch das Recht haben von jedem PC auf MySQL zugreifen zu dürfen. Meist darf das aber der Benutzer nicht, er darf standardmäßig meist nur von localhost zugreifen. Du müßtest also mal Deinem DB-User die Rechte mitteilen.

mySQL-Manual 

In der Datenbank 'mysql' findest Du in der Tabelle 'User' alle Benutzer. Dort in der Spalte 'Host' muß '%' stehen damit der User von jedem Rechner der Welt auf die DB zugreifen darf. Steht dort 'localhost' dann darf er nur von dem lokalen PC drauf zugreifen.

Ich hoffe das war verständlich...?!  

MfG
..::Six Dark::..


----------



## BadMonkey (4. Dezember 2003)

Tut 

greetz


----------



## artaqx (15. Dezember 2003)

hallo !

ich komme erst gar nicht soweit .. 
bin nicht so fit in java, als das ich den fehler alleine finden würde !

MEIN FEHLER:
---------------------------
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
-----------------------------

MEIN CODE:
----------------------
package mysqltest;
import java.sql.*;
import java.util.*;
import java.io.*;

public class starter {
  public starter() {
    Connection con = null;
String dbserver = "localhost"; //Name oder IP-Adresse des Datenbank Servers
String db = "home"; // Name der Datenbank
String dbuser = "michael"; //Name des Datenbank-Benutzers
String dbpwd = "topspeed"; //Passwort des Datenbank-Benutzers
try
{
   //   Class.forName("com.mysql.jdbc.Driver").newInstance();
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://"+ dbserver + "/" + db,
dbuser, dbpwd);
}
catch (Exception e)
{e.printStackTrace();
// hier den error abhandeln!
}

  }
  public static void main(String[] args) {
    starter starter1 = new starter();
  }

}
----------------------

den treiber habe ich heruntergeladen:
mysql-connector-java-3.0.9-stable.zip

und in das verzeichnis "C:\JBuilder9\lib\ext" entpackt:

FRAGE:
--------------
Kann mir bitte jemand weiterhelfen .. ich schaffe das ohne hilfe nicht !

danke, lG michael X-)=


----------



## Thomas Darimont (15. Dezember 2003)

Servus!

Wann kommt denn die Fehlermeldung?
(Die  übrigens besagt, dass dein mysqlxxxx.jar nicht im richtigen Verzeichnis liegt") ... kopiers mal in das ext Verzeichnis deiner JRE installation bzw. ins lib...
Andernfalls besteht noch die Möglichkeit das ganze per Konsole zu compilieren:

```
javac -classpath .;c:\pfad_zum_mysql_jar/mysqlxxxx.jar;c:\pfad_zum_meinen_klassen;c:\pfad_zum_jdk\rt.jar MeineKlasse.java

und danach:

 java  - cp .;c:\pfad_zum_mysql_jar/mysqlxxxx.jar;c:\pfad_zum_meinen_klassen;c:\pfad_zum_jdk\rt.jar MeineKlasse
```

Gruß Tom


----------



## artaqx (15. Dezember 2003)

@tom 

danke für deine hilfe !
du hast recht gehabt 


ich habe wie schon gesagt den treiber bereits heruntergeladen !
anbei ... ich arbeite mit jbuilder:

und unter tools: configure jdk, muss man den PFAD zum HERUNTERGELADENEN TREIBER (*.jar file) bekanntmachen !

ist total easy, wenn man das problem erkannt hat, danke nochmal ! 

gruß michael X-)=


----------



## Tunemaster (16. Januar 2004)

@Torox
 Hi! Was bedeutet denn diese Zeile?

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

MfG


----------



## Christian Fein (16. Januar 2004)

> _Original geschrieben von Tunemaster _
> *@Torox
> Hi! Was bedeutet denn diese Zeile?
> 
> ...



Damit lädt die VM die Klasse in den Speicher und kann damit arbeiten.


----------



## Tunemaster (19. Januar 2004)

Danke!


----------

