Qt 5.2.1 MySQL SQL Driver installieren [SOLVED]
-
wrote on 23 Mar 2014, 09:27 last edited by
Den Ordner sqldrivers finde ich in mehrere Ordner von Qt. Ist es dir unter Tools\QtCreator\bin\plugins\sqldrivers?
-
wrote on 23 Mar 2014, 09:34 last edited by
Befinde mich nun im folgenden Pfad
C:\Qt\5.2.1\Src\qtbase\src\plugins\sqldrivers\mysql
und habe danach folgendes eingegeben
qmake "INCLUDEPATH+=C:/MySQL/include" "LIBS+=C:/mysql/MySQL Server 5.6/lib/libmysql.lib" mysql.pro
Danach hat er mir nur wieder den Pfad angezeigt ohne irgendwelche Meldung
-
wrote on 23 Mar 2014, 09:35 last edited by
Das ist korrekt, den Ordner sqldrivers gibt es mehrfach: Im Quellcode und im Qt-Pfad.
Die kompilierten Treiber (.dll) müssen in:
C:\Qt\Qt5.2.0\5.2.1*\mingw48_32\plugins\sqldrivers*
liegen -
wrote on 23 Mar 2014, 09:37 last edited by
Habe folgende *.dll
qsqlite.dll
qsqlited.dll
qsqlmysql.dll
qsqlmysqld.dll
qsqlodbc.dll
qsqlpsql.dll
qsqlpsqld.dll:-)
-
wrote on 23 Mar 2014, 10:22 last edited by
Führe ich folgendes Projekt aus:
@QSqlDatabase mydb1 = QSqlDatabase::addDatabase("QMYSQL");
mydb1.setHostName("10.211.55.6");
mydb1.setDatabaseName("test");
mydb1.setUserName("test");
mydb1.setPassword("server");
mydb1.setPort(3306);if(!mydb1.open()) { cout << "Database Error"; return false; } else { cout << "Database true"; return true; }@
Und in der pro habe sql mit qmake gemacht
-
wrote on 23 Mar 2014, 10:29 last edited by
Funktioniert das denn jetzt?
-
wrote on 23 Mar 2014, 10:39 last edited by
Nein. Leider nicht :-(
wo muss ich die libmysql.dll hin kopieren? musste man die nicht in ein windows Verzeichnis laden?
-
wrote on 23 Mar 2014, 10:46 last edited by
Die dlls müssen in C:\Qt\Qt5.2.0\5.2.1\mingw48_32\plugins\sqldrivers liegen. (evtl. C:\Qt\Qt5.2.0\5.2.1 gegen den entsprechenden Pfadnamen deines Rechners austauschen)
Wenn das nicht funktionieren sollte (was meist an Problemen mit der Path-Variablen liegt) kannst du auch ein Unterverzeichnis sqldrivers unter dem Build-Verzeichnis anlegen, das im Creator unter Projekte definiert ist (z.B. QBUILD\debug\meinprojekt), und die dlls auch dahin kopieren.
Das ist zwar nicht elegant aber zum Testen ggf. sinnvoll. -
wrote on 23 Mar 2014, 10:53 last edited by
Also im Pfad:
C:\Qt\5.2.1\mingw48_32\plugins\sqldrivers
liegen folgende Treiber:
qsqlite.dll
qsqlited.dll
qsqlmysql.dll
qsqlmysqld.dll
qsqllodbc.dll
qsqllodbcd.dll
qsql.psql.dll
qsqlpsqld.dllHabe es jetzt in den Ordner build-<meinProjekt>/debug/sqldrivers kopiert und das projekt bereinigt und qmake ausgeführt. leider immer noch mit der Meldung das er die Treiber nicht laden konnte
-
wrote on 23 Mar 2014, 10:55 last edited by
Poste doch bitte mal die exakte Fehlermeldung - da werden wir hoffentlich einen Hinweis finden können.
-
wrote on 23 Mar 2014, 11:00 last edited by
Beim Ausführen kommt:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7dann kommt das cout "Database Error" was ich mir ausgeben lasse
-
wrote on 23 Mar 2014, 11:02 last edited by
Bin mit Navicat oder MySQL Workbench mit der Datenbank verbunden.
-
wrote on 23 Mar 2014, 11:11 last edited by
Das bringt uns weiter:
Qt zeigt dir mit der Meldung, dass ein mysql Treiber vorhanden ist (available driver QMSQL) , dass dieser aber nicht verwendet werden kann (not loaded).
Eine Ursache hierfür kann ein Mix zwischen 64-Bit und 32-Bit Versionen sein. Wenn Du mit mingw arbeitest, musst Du auch die 32-Bit Version von MYSQL verwenden. Ist dem so?
Wenn ja, dann hilft evtl., das Projekt nochmals komplett neu erstellen zu lassen.
Wenn nein, wird es sich nicht vermeiden lassen, die 32-Bit MYSQL zu installieren und das plugin neu zu bauen.
Hier ist ein empfehlenswerter Link, der sich auf das Problem bezieht:
"MYSQL WIN":http://seppemagiels.com/blog/create-mysql-driver-qt5-windows -
wrote on 23 Mar 2014, 11:37 last edited by
Habe jetzt alles Deinstalliert und alles auf 32bit installiert.
Nun sagt er mir:
The filename, directory name, or volume label syntax is incorrect
Mal schauen woran es liegt :-) -
wrote on 23 Mar 2014, 11:39 last edited by
Mit dem Befehl:
INCLUDEPATH+=C:/Program Files (x86)\MySQL\include --> Welches verzeichnis will er hier?
Ich glaube es hängt daran
-
wrote on 23 Mar 2014, 13:09 last edited by
Habe es jetzt nochmals probiert in der cml diesmal ohne fehler aber das programm selber funktioniert nicht. kommt wieder driver not loaded :-(
-
wrote on 23 Mar 2014, 13:17 last edited by
Lösche nochmals die bereits im Build-Verzeichnis vorhandenen Dateien und lasse den Build neu erstellen.
Das war auch in meiner Win7-Installation nach zahllosen Stunden der letzte Fehler. -
wrote on 23 Mar 2014, 13:17 last edited by
Okay ich habe den Fehler gefunden. Ich musste die libmyswl.dll in C:Windows kopieren und schon läuft es
-
wrote on 23 Mar 2014, 13:20 last edited by
Prima, freut mich! Aber - streng genommen - gehört sie da nicht hin, Qt müsste sie auch in sqldrivers erkennen.
Aber das ist Kür, wichtiger ist, dass es jetzt funktioniert! -
wrote on 23 Mar 2014, 13:21 last edited by
Jetzt funktioniert es wieder nicht :-(
28/92