build QMYSQL driver under windows 10, a sample solution for QSqlDatabase: QMYSQL driver not loaded
-
@Christian-Ehrlicher
What....??? I have used MySQL from Qt5 for Ubuntu & Windows for years, and never compiled anything. (We use Python, so none of us even install C++ compiler chains, and certainly not under Windoze.) Are you saying that of the latest Qt we now have to do compilations to obtain MySQL operability? :( -
@JonB said in QMYSQL driver not loaded, how to get the qsqlmysql.dll for qt5.12.6 ?:
Are you saying that of the latest Qt we now have to do compilations to obtain MySQL operability? :(
Yes, but blame MySQL, not Qt.
-
@Christian-Ehrlicher
I shall blame whomever I choose to blame! ;)I just had a look at my Ubuntu 19.04. I fetched everything Qt, including the MySQL bits, via
apt-get
only, no sources/compilation. I see that OS release comes with Qt 5.12.2. You are saying that once I move to the next release of Ubuntu I will have to follow instructions to get sources and compile for MySQL interoperability? And for stinky Windows, I will have to muck about fetching & installing a C++ compiler? You sure about this? :( This applies to both Linux & Windows? Are you able to supply a link mentioning this for Qt 5.12.6 onward. please? -
I'm pretty sure ubuntu will ship the mysql plugin also for Qt > 5.12.5 but the pre-compiled Qt you're getting with the Qt installer will no longer ship this plugin due to legal reasons.
-
@Christian-Ehrlicher
Ahhhh! Fortunately I have never used the Qt installer, so hopefully I can breathe a sigh of relief over this :) I sit in Ubuntu, I can't even recall what I did to install Qt under Windoze :) -
@Christian-Ehrlicher
hi, I try to follow the step of the link your showed. But there is no "Libs & Include Files" Module in mysql "Custom Install", and no file end with the /lib/opt in any my sql file.I tried the following code on cmd, but nothing work.
cd C:\Qt\5.12.6\mingw73_32\bin\ (where qmake is )
qmake -- MYSQL_INCDIR=E:/mysql-8.0.18-winx64/include "MYSQL_LIBDIR=C:/Program Files/MySQL/MySQL Server 8.0/lib"there is nothing happened.
-
@hehedaozuiteng said in QMYSQL driver not loaded, how to get the qsqlmysql.dll for qt5.12.6 ?:
I tried the following code on cmd, but nothing work.
I'm giving up - you simply don't care about the instructions and don't show us what we need to show and what we suggest you to do... why do you think anything will work inside C:\Qt\5.12.6\mingw73_32\bin\ when you want to compile the sql driver? Did you make sure the incdir and libdir are containing the files mentioned in my (second) instruction link?
-
@Christian-Ehrlicher
Do not be mad man. I just not realize how to build sql-driver.
the cmd does not running the qmake, I do not install qmake before I used it so I though I have to move to the where qmake.exe is.
Now I am install the qmake, perhep this time work and reinstall the mysql. Mysql is combine into differents programs, I cannot find the include and "/lib/opt" folder in it. -
Can you tell me what is the file that include in the "incdir" and "libdir" folder ?
I reinstalled the mysql, but cannot find the folder such as your described in instruction. Thank you very much. -
in the hope i can help someone: I provide various versions of qsqlmysql.dll here on Github
-
@thecodemonkey
Thank for you help anyway.
I solved it two days ago. BTW, I do not think 32 bit vision is useful, ( if I am wrong please point out.) Mysql's serves is only offer 64 bit, so the libmysql.dll is also 64 bits. That is why I cannot build the drive at first 2 days lol.If someone like me do not know this, he will kill his two days beautiful life XD.
-
When I run this "qmake -- MYSQL_INCDIR="%Mysql%/MySQL Server 8.0/include" MYSQL_LIBDIR="%Mysql%/MySQL Server 8.0/lib" " it's show me the message " QMake has two modes, one mode for generating project files based on some heuristics, and the other for generating makefiles. Normally you shouldn't need to specify a mode, as makefile generation is the default mode for qmake, but you may use this to test qmake on an existing project " How can i solve this?
-
@thecodemonkey Thank you so much. Your files solved my problem.
-
@thecodemonkey man I am using qt6.5.1, when I try to compile the driver it says that it doesn't recognize some lines of code when trying to build it... I am following this (the official qt documentation).. I think it doesn't find the mingw compiler.. I installed a new one but it does not work, it isn't recognized by the system also I'm using windows 11.. should I show you what are the errors? (I warn you, they are a lot)
-
@cpplegend said in build QMYSQL driver under windows 10, a sample solution for QSqlDatabase: QMYSQL driver not loaded:
it isn't recognized by the system
If you want to build in a terminal on Windows then you should always use the terminal provided by Qt. If you installed Qt for MinGW you should have an entry in Windows Start menu to open the terminal preconfigured to use MinGW and Qt.
-
@cpplegend No, there are always things one has to learn when doing something for the first time :-)
-
@jsulm thank you..
by the way it doesn't workwhen I build it I get this:
[15/25] Building RC object mysql/CMakeFiles/QMYSQLDriverPlugin.dir/QMYSQLDriverPlugin_resource.rc.obj
FAILED: mysql/CMakeFiles/QMYSQLDriverPlugin.dir/QMYSQLDriverPlugin_resource.rc.obj
C:\Qt\Tools\mingw1120_64\bin\windres.exe -O coff -DMINGW_HAS_SECURE_API=1 -DQMYSQLDriverPlugin_EXPORTS -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_UP_TO=0x040800 -DQT_EXPLICIT_QFILE_CONSTRUCTION_FROM_PATH -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_PLUGIN -DQT_SQL_LIB -DQT_WARN_DEPRECATED_UP_TO=0x070000 -DUNICODE -DWIN32 -DWIN64 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_UNICODE -D_WIN64 -I C:/Qt/6.5.1/mingw_64/build-sqldrivers/mysql/QMYSQLDriverPlugin_autogen/include -I C:/Qt/6.5.1/Src/qtbase/src/plugins/sqldrivers/mysql -I C:/Qt/6.5.1/mingw_64/build-sqldrivers/mysql -I C:/Qt/6.5.1/mingw_64/build-sqldrivers/include -I "C:/Program Files/MySQL/MySQL Connector C 6.1/include" -I C:/Qt/6.5.1/mingw_64/include/QtCore -I C:/Qt/6.5.1/mingw_64/include -I C:/Qt/6.5.1/mingw_64/mkspecs/win32-g++ -I C:/Qt/6.5.1/mingw_64/include/QtCore/6.5.1 -I C:/Qt/6.5.1/mingw_64/include/QtCore/6.5.1/QtCore -I C:/Qt/6.5.1/mingw_64/include/QtSql/6.5.1 -I C:/Qt/6.5.1/mingw_64/include/QtSql/6.5.1/QtSql -I C:/Qt/6.5.1/mingw_64/include/QtSql C:/Qt/6.5.1/mingw_64/build-sqldrivers/mysql/QMYSQLDriverPlugin_resource.rc mysql/CMakeFiles/QMYSQLDriverPlugin.dir/QMYSQLDriverPlugin_resource.rc.obj
cc1.exe: fatal error: Files/MySQL/MySQL: No such file or directory
compilation terminated.
cc1.exe: fatal error: Connector: No such file or directory
compilation terminated.
cc1.exe: fatal error: C: No such file or directory
compilation terminated.
cc1.exe: fatal error: 6.1/include: No such file or directory
compilation terminated.
C:\Qt\Tools\mingw1120_64\bin\windres.exe: preprocessing failed.
[22/25] Building C object sqlite/CMakeFiles/QSQLiteDriverPlugin.dir/C_/Qt/6.5.1/Src/qtbase/src/3rdparty/sqlite/sqlite3.c.obj
ninja: build stopped: subcommand failed.