Qt 5.2.1 MySQL SQL Driver installieren [SOLVED]
-
Hab halt im Verzeichnis C: die lib von MySQL connector c++
-
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. -
@cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=C:/MySQL/include" "LIBS+=C:/MYSQL/MySQL Server <version>/lib/opt/libmysql.lib" mysql.pro
nmake@Das habe ich gefunden. gebe ich das bei der cmd ein
-
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... -
Du kein Problem. Werde es mal einfach Probieren. Dann sehe ich ja was passiert.
Danke nochmals ;-)
-
Sehr gern :-)
-
@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
-
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. -
Was meinst du mit PATH?
-
Unter den Ordner mingw48_32 in der bin gibt es ne qmake
-
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) -
@cd %QTDIR%\src\plugins\sqldrivers\mysql@
Bei dem kommt The system cannot find the path specified.
-
Den Ordner sqldrivers finde ich in mehrere Ordner von Qt. Ist es dir unter Tools\QtCreator\bin\plugins\sqldrivers?
-
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
-
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 -
Habe folgende *.dll
qsqlite.dll
qsqlited.dll
qsqlmysql.dll
qsqlmysqld.dll
qsqlodbc.dll
qsqlpsql.dll
qsqlpsqld.dll:-)
-
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
-
Funktioniert das denn jetzt?
-
Nein. Leider nicht :-(
wo muss ich die libmysql.dll hin kopieren? musste man die nicht in ein windows Verzeichnis laden?
-
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.