build QMYSQL driver under windows 10, a sample solution for QSqlDatabase: QMYSQL driver not loaded
-
@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. -
@cpplegend said in build QMYSQL driver under windows 10, a sample solution for QSqlDatabase: QMYSQL driver not loaded:
cc1.exe: fatal error: Files/MySQL/MySQL: No such file or directory
You have paths with spaces which are often problematic, just like in this case.
Install the MySQL client lib in a folder without spaces. -
@jsulm it still doesn't work, it's another error now: [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_ConnectorC6.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_ConnectorC6.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. -
@cpplegend said in build QMYSQL driver under windows 10, a sample solution for QSqlDatabase: QMYSQL driver not loaded:
it's another error now
It's same type of error - you have spaces in your paths.
Did you install the client library in a path without spaces?
If so then please start from clean build folder.