参考文章
QMYSQL driver not loaded 原理及解决方案
Qt: QSqlDatabase: QMYSQL driver not loaded
在 5.12 及之前的版本中,Qt 的安装包中自带 MySql 驱动,在 plugins/sqldrivers 目录下可以找到,但到了 5.13 之后,MySql 驱动便没有了,这时我们可以选择手动编译。
要编译 MySql 驱动,有两个前提条件:
1.在安装 Qt 时,要一并安装源码(勾选“Sources”组件)。笔者这里使用的是5.13.
2.需要下载 MySql,编译源码时需要用到。MYSQL下载
下载并解压(不要有中文路径):
这里的“include”和“lib”目录比较重要,它们分别包含了 MySql 的头文件以及相应的库文件,在编译 MySql 驱动时需要用到。
现在进入 Qt 的 MySql 数据库驱动源码目录(例如笔者的是:D:\myQT\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql),
使用Qt Creator打开 mysql.pro,并进行如下更改:
MYSQL_PATH为之前下载的mysql-8.0.22-winx64.zip压缩包的解压位置:
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
DESTDIR = $$PWD/lib
MYSQL_PATH = D:/mysql-8.0.22-winx64
INCLUDEPATH += $${MYSQL_PATH}/include
LIBS += $${MYSQL_PATH}/lib/libmysql.lib
然后进行编译,完成之后,在输出目录下就会生成对应的驱动了:
将他们拷贝到程序所在的sqldrivers目录(笔者这里是:D:\myQT\5.13.2\mingw73_64\plugins\sqldrivers),就能正常运行了。
根据这篇文章QMYSQL driver not loaded 原理及解决方案,到这里笔者的问题就解决了,如果还不行,该文章中还有更深入的解决方法。