Probleme unter Linux mit MySQL / ODBC

Chamäleon

Mitglied
Mein System ist ein AMD64 mit SuSE Linux 10.1 64-bit.
Ich habe MySQL inklusive der GUI-Tools installiert, was auch hervorragend funktioniert. Nun möchte ich von Java (Eclipse) aus auf meine Datenbank zugreifen und habe zu diesem Zweck OBDC installiert.

Paket <mysql-connector-odbc-3.51.12-1.i586.rpm>

ein "x86_64"-Paket konnte ich nicht finden. Dieses Paket habe ich mit "rpm -i" installiert. Beim Aufruf von myodbc3i -a -su -t"DSN=<DSN-Name>;DRIVER=MySQL ODBC 3.51 Driver;SERVER=localhost;UID=root" erhalte ich die Meldung

myodbc3i: symbol lookup error: /usr/lib/libmyodbc3S.so: undefined symbol: SQLAllocHandle

Warum nur, warum? *VERZWEIFELTSCHAU*

Wo ist der Fehler? In meinem System oder in meinem Kopf? Für eure Hilfe bedanke ich mich jetzt schon mal!!

PS: Solte hier eine Antwort kommen, die sich auf den CLASSPATH bezieht: Wo stelle ich den ein? Die Antwort bitte für Newbies / Dummis formulieren!!
 
Keine Lösung für Dein Problem, aber ein Hinweis: wenn Du mit Java und Datenbanken arbeitest, empfielt sich eher der Einsatz von JDBC.
 
Die Antwort bitte für Newbies / Dummis formulieren!!

OK, habe mir das folgende Paket heruntergeladen:

<mysql-connector-java-5.0.4.tar.gz>

Dieses entpackt mit: <tar xvzf>

Nun steht es in meinem Homeverzeichnis! --> UND NUN? <--

In verschiedenen Tutorials habe ich einige Java-Quellcodes gefunden, aber keiner funktioniert. Immer lande ich im Catch-Zweig.

Was ich benötige, ist eine grundlegende Initial-Zündung. Wenn's einmal läuft, kann ich selber weiter probieren und die Hintergründe "erforschen"!
 
export CLASSPATH=$CLASSPATH:<home>

(Den vollständigen Pfad zur .jar angeben, die in dem tarball war, also dem JDBC-Treiber selbst).
 
Ich glaub, ich bin echt zu blöd.
Hab jetzt folgendes gemacht. Das Connector/j Verzeichnis nach /lib verschoben.
Sieht so aus

<ich>@<MeinRechner>:/lib> ls -l mysql-connector-java-3.1.14
insgesamt 640
-rw-r--r-- 1 xxx users 37284 2006-10-18 23:35 build.xml
-rw-r--r-- 1 xxx users 111435 2006-10-18 23:35 CHANGES
-rw-r--r-- 1 xxx users 19451 2006-10-18 23:35 COPYING
drwxr-xr-x 2 xxx users 104 2006-10-18 23:35 debug
drwxr-xr-x 3 xxx users 208 2006-10-18 23:35 docs
-rw-r--r-- 1 xxx users 5253 2006-10-18 23:35 EXCEPTIONS-CONNECTOR-J
-rw-r--r-- 1 xxx users 459094 2006-10-18 23:35 mysql-connector-java-3.1.14-bin.jar
-rw-r--r-- 1 xxx users 1310 2006-10-18 23:35 README
-rw-r--r-- 1 xxx users 1355 2006-10-18 23:35 README.txt
drwxr-xr-x 7 xxx users 176 2006-10-18 23:35 src


Mein Classpath

<ich>@<MeinRechner>:/lib> echo $CLASSAPTH
/lib/mysql-connector.java-3.1.14


Java-Prog

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


public class TestProg1 {

public static void main(String[] args) {

String URL = "jdbc:odbc:odVideo";


try{
// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection
("jdbc:mysql://localhost/myVideo?user=root");

}
catch (SQLException ex){
System.err.println("Treiber konnte "
+ "nicht geladen werden");
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());

return;
}

....

Meldung der SQLException

Treiber konnte nicht geladen werden
SQLException: No suitable driver
SQLState: 08001
VendorError: 0


Ich weiß echt nicht weiter!
 
Code:
// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
...wäre falsch, auskommentieren hilft aber auch nichts. :-)

Code:
Class.forName("com.mysql.jdbc.Driver").newInstance();

EDIT: Dein CLASSPATH muß entweder den Pfad zum JAR (komplett mit Dateiname) oder das Verzeichnis, in dem die JAR zu finden ist enthalten. Wenn Dein Pfad aus dem letzten Posting kein Tippfehler ist, stimmt er nicht.
 
Zuletzt bearbeitet:
erst mal danke für Deine Hilfe und Deine Geduld. Es läuft zwar immer noch nicht, aber ich habe inzwischen eingesehen, daß ich mich erst mal um mein Basiswissen kümmern muß. Werde, wenn ich soweit bin und immer noch das gleiche Problem habe, mich wieder melden.

Wie gesagt, zunächst mal Danke.
 
Zurück