Seite 1 von 1

[SOLVED] Problem: Datenbanktreiber einrichten - Linux

Verfasst: 2. Januar 2012 12:33
von t4ggno
Hallo,

ich versuche jetzt schon seit Tagen den MySQL-Treiber auf linux einzurichten.
Das Problem ist aber das im Ordner "/usr/local/Trolltech/Qt-4.8.0/plugins/sqldrivers" es keinen "mysql"-Ordner befindet. Beudetet also, dass ich auch keine mysql.pro habe.

Im Ordner "sqldrivers" habe ich nur 3 Dateien:
libqsqlite.so libqsqlmysql.so libqsqlpsql.so

Habe ich einen Fehler bei der Installation gemacht?

Danke schonmal für die Hilfe!

Gruß
t4ggno

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 2. Januar 2012 13:55
von Christian81
libqsqlmysql.so ist doch der MySQL-Treiber... was sagt QSqlDataBase::drivers?
Des weiteren - warum selbst kompilieren? Die Linux-Distributionen bringen das Ganze schon korrekt konfiguriert mit ...

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 2. Januar 2012 14:07
von t4ggno
Folgende Fehlermeldung erscheint wenn mein Programm eine Verbindung zur Datenbank herstellen möchte:

Code: Alles auswählen

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QPSQL7 QPSQL
Das mit dem compilieren habe ich hier gesehen:
http://doc.qt.nokia.com/4.7-snapshot/sq ... ingw-users

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 2. Januar 2012 14:27
von Christian81
Nimm das Qt und das Qt-Mysql - Plugin von Deiner Distribution - da geht es auf alle Fälle ...
Der Link zeigt auf das Vorgehen zum Kompilieren des Plugins unter Windows mit MinGW - was Du damit anfangen willst weiß ich nicht.

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 2. Januar 2012 14:45
von t4ggno
Siehe hier (gleiches Verfahren):
http://www.isd-web.com/index.php?option ... &Itemid=13

Dort wird der Treiber mithilfe der mysql.pro File erzeugt und in den plugin-Ordner verschoben.
Das MySQL-Plugin was sich ja derzeit im sqldrivers-ordner befindet funktioniert ja nicht, da es ja sonst in der Liste der verfügbaren Treiber aufgelistet sein sollte.

Oder steh ich grad auf der Leitung?

Gruß
t4ggno

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 2. Januar 2012 15:11
von Christian81
Nochmal: Nimm die Qt-Version von deiner Distribution und dort den MySQL-Treiber - dann geht es auf alle Fälle... warum man Qt unter Linux selbst kompilieren muss wenn man nicht gerade einen gravierenden Bug in der mitgelieferte Version findet verstehe ich nicht - zumal wenn man wenig Ahnung hat.
Und wenn Du es von Hand machen willst - so wie es aussieht hast Du den MySQL-Treiber korrekt kompiliert. Wenn er nicht geladen werden kann dann liegt es daran dass Du entweder nicht diese Qt-Version benutzt (ldd ist dein Freund) oder dass das Plugin nicht alle Library-Dependencies findet (auch hier: ldd ist dein Freund -> ldd libmysqlplugin.so)

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 2. Januar 2012 15:31
von t4ggno
Entschuldige meine Unwissenheit.
Aus Fehlern lernt man! Habe noch nie was großes mit Linux gemacht.

Habe nun mal ldd beim MySQL-Treiber gemacht. Ergebnis:

Code: Alles auswählen

/usr/local/Trolltech/Qt-4.8.0/plugins/sqldrivers# ldd libqsqlmysql.so
        linux-vdso.so.1 =>  (0x00007fffa01ff000)
        libmysqlclient_r.so.16 => /usr/lib/libmysqlclient_r.so.16 (0x00007f3c9d234000)
        libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0x00007f3c9cff1000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x00007f3c9cb5f000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f3c9c84b000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f3c9c635000)
        libc.so.6 => /lib/libc.so.6 (0x00007f3c9c2d3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f3c9c0b7000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00007f3c9be80000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00007f3c9bc67000)
        libm.so.6 => /lib/libm.so.6 (0x00007f3c9b9e5000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f3c9b7ce000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f3c9b5c9000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f3c9b3c5000)
        librt.so.1 => /lib/librt.so.1 (0x00007f3c9b1bd000)
        libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00007f3c9aee0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3c9d879000)
        libpcre.so.3 => /lib/libpcre.so.3 (0x00007f3c9acb0000)
Sieht das so in Ordnung aus, oder fehlt mir eine Datei?

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 2. Januar 2012 16:05
von Christian81
Und hast du endlich auch geschaut ob Du wirklich das von Dir kompilierte Qt benutzt und nicht das von der Distribution? Und warum überhaupt ein eigenes Qt??

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 3. Januar 2012 14:03
von t4ggno
Also. Ich weiß zwar nicht genau, was du mit deiner Frage gemeint hast, aber die Funktion

Code: Alles auswählen

app.libraryPaths();
liefert folgendes Ergebnis:

Code: Alles auswählen

("/usr/local/Trolltech/Qt-4.8.0/plugins", "/home/Tools/SQL_Driver")
Er greift also auf das richtige QT-Verzeichnis zu. In diesem Plugin-Ordner befindet sich ja der sqldriver-ordner mit dem darin enthaltenden MySQL-Treiber?!

Gruß
t4ggno

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 6. Januar 2012 14:51
von t4ggno
*PUSH*

Das Problem besteht weiterhin!

kann mir denn keiner weiterhelfen?

Gruß
t4ggno

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 6. Januar 2012 15:23
von Christian81
Du hast immer noch nicht gesagt warum Du das Qt welches von deiner Distribution mitgeliefert wird nicht benutzen möchtest - denn dort geht es auf alle Fälle.

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 6. Januar 2012 15:42
von t4ggno
Wenn es kein Unterschied gibt, dann verwende ich halt das QT von der OS.
Aber wie genau kann ich meinem Server nun "beibringen"?

Wird dann mysql auch funktionieren?

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 6. Januar 2012 16:44
von Christian81
Was meinst Du damit? Wenn das Paket für das Qt-MySQL Plugin installiert ist (wasd meistens per default schon passiert) dann benutze es und fertig.

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 6. Januar 2012 17:31
von t4ggno
Aber wie? Ich hab grad echt keine Ahnung..
Will doch nur diese dumme MySQL-Verbindung hinbekommen. Ist ja einfacher eine alternativlösung zu suchen :/

Hab doch nichts anders gemacht als andere?!

Re: Problem: Datenbanktreiber einrichten - Linux

Verfasst: 7. Januar 2012 20:48
von t4ggno
Habe das Problem glaub gelöst.
Ich habe einfach nur die libmysql.so-Datei in das "lib"-Verzeichnis von QT verschoben.
Nun findet er den Treiber.

Seltsam warum er nicht im plugin-Ordner gesucht hat.
Naja... hauptsache es funktioniert.

Gruß
t4ggno