Qt 5.2.1 MySQL SQL Driver installieren [SOLVED]
-
wrote on 22 Mar 2014, 09:53 last edited by
Die lib werden benötigt, um das plugin zu erstellen.
Das plugin besteht aus den DLLs: qsqlmysql4.dll und qsqlmysqld4.dll
Wenn du die nicht hast, musst du sie bauen (s.o. Qt 5.2 -> Qt SQL -> SQL Database Drivers). Die DLLs müssen exakt zu deiner Systemumgebung passen, daher sollten sie stets in der passenden Konfiguration erstellt werden. -
wrote on 22 Mar 2014, 10:28 last edited by
Das schaut nicht schlecht aus - am Ende müsstest du die DLLs erhalten, wenn das make ohne Fehler läuft.
Falls Fehlermeldungen erscheinen, bitte posten. Bin allerdings jetzt ein paar Stunden nicht am Rechner... -
wrote on 22 Mar 2014, 10:30 last edited by
Du kein Problem. Werde es mal einfach Probieren. Dann sehe ich ja was passiert.
Danke nochmals ;-)
-
wrote on 22 Mar 2014, 10:32 last edited by
Sehr gern :-)
-
wrote on 22 Mar 2014, 14:18 last edited by
@qmake "INCLUDEPATH+=C:/MySQL/include" "LIBS+=C:/MYSQL/MySQL Server <version>/lib/opt/libmysql.lib" mysql.pro@
Hab diesen Befehl ausführen wollen und es kam als Meldung:
'qmake' is not recognized as an internal or external comman, operable program or batch file
und befinde mich in folgenden ordner:
c:\Qt\5.2.1\Src\qtbase\src\plugins\sqldrivers\mysql
-
wrote on 22 Mar 2014, 16:25 last edited by
Wir kommen der Sache näher:
qmake.exe ist ein Tool, das zum Umfang von Qt gehört (ein Generator für makefiles) und mit Qt installiert wird. Du solltest jetzt prüfen, ob das Programm vorhanden ist und PATH entsprechend über die Systemsteuerung anpassen. -
wrote on 22 Mar 2014, 18:25 last edited by
Was meinst du mit PATH?
-
wrote on 22 Mar 2014, 18:27 last edited by
Unter den Ordner mingw48_32 in der bin gibt es ne qmake
-
wrote on 23 Mar 2014, 08:38 last edited by
Sieht schon nicht schlecht aus!
Path ist eine Systemvariable in Windows, die den Suchpfad enthält.
Ein Programm wie qmake.exe wird im cmd-Fenster nur dann gefunden, wenn es in einem Verzeichnis steht, auf das "Path" verweist.
Die Variable "Path" musst du wie folgt bearbeiten:
bq.
Systemsteuerung
->System und Sicherheit
->System
->Erweiterte Systemeinstellungen
->Umgebungsvariablen
->Systemvariablenin der Listbox Path auswählen und dann:
Bearbeiten
ans Ende der Zeile ein Semikolon und den gesamten Pfad eintragen
(Bsp. ;C:\Qt5.2.1\5.2.1\mingw48_32) -
wrote on 23 Mar 2014, 09:24 last edited by
@cd %QTDIR%\src\plugins\sqldrivers\mysql@
Bei dem kommt The system cannot find the path specified.
-
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
17/92