QT:qt-opensource-windows-x86-5.12.11
MySQL:mysql-8.0.26-winx64
出错问题:
-
QSqlDatabase: QMYSQL driver not loaded
- QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
解决方法:
1.确定项目编译环境是msvc2017_64,还是mingw73_64。如果两个都用,后面步骤分两次操作。
2.编译目录下,是否存在qsqlmysql.dll和qsqlmysqld.dll
msvc2017_64
D:\Qt\Qt5.12.11\5.12.11\msvc2017_64\plugins\sqldrivers
mingw73_64
D:\Qt\Qt5.12.11\5.12.11\mingw73_64\plugins\sqldrivers
注意:不同编译器下,对应的qsqlmysql.dll和qsqlmysqld.dll不同
3.如果第2步结果是否,那么需要自己编译MySQL驱动对应的DLL文件。
编译MySQL步骤如下:
- 用QT Creator 打开路径D:\Qt\Qt5.12.11\5.12.11\Src\qtbase\src\plugins\sqldrivers\mysql下得mysql.pro。如果找不到对应的路径,重新打开QT安装软件,将Sources勾选
- 修改mysql.pro
注释掉:
QMAKE_USE += mysql
添加:
INCLUDEPATH +="D:/Program Files/mysql/include"
LIBS +="D:/Program Files/mysql/lib/libmysql.lib"
- 修改qsqldriverbase.pri
注释:
include($$shadowed($$PWD)/configure.pri)
添加:
include(./configure.pri)
- 编译,在项目中,选择编译环境
- 编译结果
将 plugins/sqldrivers文件里的qsqlmysql.dll和qsqlmysqld.dll放入上述编译环境对应的目录下。
msvc2017_64
mingw73_64