WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 29.06.2002, 13:01   #1
gerngroh
Jr. Member
 
Registriert seit: 22.12.2001
Alter: 43
Beiträge: 65


Standard java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver

Hallo!

Ich bin grad dabei meine Java-Kenntnisse aufzufrischen und wollte dazu kurz das Beispiel TableExample.jar welches beim jdk1.3.1 dabei ist ausprobieren.

Ich hab dazu MySql und den dazugehörigen JDBC-Treiber (http://www.mysql.com/Downloads/Contr...bc-1.2c.tar.gz bzw. http://www.mysql.com/Downloads/Contr...-2.0.4-bin.jar) installiert.

Dann einfach den Treiber (ver 1.2c) in /usr/local/jdk1.3.1/lib entpackt und das neu entstandene Verzeichnis /usr/local/jdk1.3.1/lib/mm-mysql-jdbc-1.2c zum CLASSPATH hinzugefügt (wie in der README angegeben)
CLASSPATH=/usr/local/jdk1.3.1/lib/mm-mysql-jdbc-1.2c
export CLASSPATH

In dem VZ befindet sich dann folgende Struktur:
org/gjt/mm/mysql/Driver.class (und weitere)

Trotzdem kommt dann beim Start des Programms obige ClassNofFoundException.

Das selbe Bsp unter Win mit der neueren Version des Treibers führt zum selben Ergebnis.

Muss CLASSPATH noch weitere Pfande standardmäßig enthalten oder genügt die Treiberklasse?

Bitte helft mir
Tschüss!
gerngroh ist offline   Mit Zitat antworten
Alt 29.06.2002, 13:14   #2
Gonte
Veteran
 
Registriert seit: 15.08.2001
Alter: 50
Beiträge: 235


Standard

kopier das jar-archiv mm.mysql-xxx-bin.jar einfach nach [java_home]/jre/lib/ext/

du brauchst den driver ja nicht beim kompilieren, sondern den braucht die jre. deswegen bindest du ihn ja auch mit Class.forName() ein.
Gonte ist offline   Mit Zitat antworten
Alt 29.06.2002, 18:48   #3
gerngroh
Jr. Member
 
Registriert seit: 22.12.2001
Alter: 43
Beiträge: 65


Standard

Ok, dass hat geklappt, doch ganz hauts immer noch net hin.

Jetzt sag er :
java.sql.SQLException: Server configuration denies access to data source.

OK
Dazu sagt das Manual zum JDBC-Treiber:

GRANT ALL PRIVILEGES ON test.* to 'user' @ 'host' identified by 'password';

Hab ich gemacht, hilft aber nichts.

Die URL zur DB lautet jdbc:mysql://localhost:3306/test
gerngroh ist offline   Mit Zitat antworten
Alt 29.06.2002, 23:56   #4
Gonte
Veteran
 
Registriert seit: 15.08.2001
Alter: 50
Beiträge: 235


Standard

was sagt denn SQLException.getSQLState()?
Gonte ist offline   Mit Zitat antworten
Alt 30.06.2002, 10:46   #5
gerngroh
Jr. Member
 
Registriert seit: 22.12.2001
Alter: 43
Beiträge: 65


Standard

Wie gesagt es handelt sich hierbei um das Beispiel-Programm welches beim JDK dabei ist.

Ich hab jetzt allerdings das mit getSQLState hinzugefügt und jetzt sagt er 08001.

Kannst du damit was anfangen?

Der Fehler liegt meiner Meinung daran, das ich nicht die Berechtigung hab über TCP/IP auf die MySQL-DB zuzugreifen, lokal gehts ja über UNIX-Sockets und das haut hin.

Abhilfe sollte laut README vom JDBC-Treiber das GRANT ALL PRIVILEGES schaffen, was ich oben schon beschrieben hab.


Kennt sich jemand mit MySQL aus und weiss wie ich das konfigurieren muss damit ich über JDBC zugreifen kann??

Danke!
gerngroh ist offline   Mit Zitat antworten
Alt 30.06.2002, 11:07   #6
Gonte
Veteran
 
Registriert seit: 15.08.2001
Alter: 50
Beiträge: 235


Standard

versuch mal folgendes:

GRANT ALL PRIVILEGES ON test.* to user@localhost identified by 'password';

wobei ich einen anderen usernamen als user verwenden würde.

ob du dann zugriff auf die mysql-db hast, kannst ja dann leicht mit dem mysql-client testen:

mysql -u username -p

wenn das funktioniert, solltest du eigentlich eine verbindung mittels jdbc herstellen können.
Gonte ist offline   Mit Zitat antworten
Alt 30.06.2002, 11:32   #7
gerngroh
Jr. Member
 
Registriert seit: 22.12.2001
Alter: 43
Beiträge: 65


Standard

Ich habs geschafft, endlich.

Das Problem lag an der Rechtevergabe von MySql.

Ich hab zwar zuvor schon GRANT ALL ...
gemacht, das Problem lag aber anscheinend an @localhost.
MySQL überprüft nähmlich welcher user von welchem host zugreift und sagt dann darf oder darf nicht.

Ich hab jetzt localhost durch '%' ersetzt wodurch ich jetzt von allen Hosts aus zugreifen kann. (obwohl ich eh immer am lokalen rechner sitz gings vorher nicht)

Das mit ALL PRIVILEGES ist natürlich eine Sicherheitslücke, ich werd mich da noch genauer mit den Permissions von MySQL auseinandersetzen, ist aber auch nicht so tragisch, da ich eh nur am lokalen rechner arbeite.

Danke für die Hilfe!
Tschüss!
gerngroh ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:12 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag