参考文章
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 原理及解决方案,到这里笔者的问题就解决了,如果还不行,该文章中还有更深入的解决方法。
在Qt5.13及以上版本中,由于默认不再包含MySQL驱动,导致QMYSQLDriverNotLoaded错误。解决方法是手动编译MySQL驱动。首先确保安装Qt时包含了源码,然后下载MySQL,解压获取include和lib目录。在Qt的MySQL驱动源码目录下用QtCreator打开并修改pro文件,指定MYSQL_PATH。编译完成后,将生成的驱动复制到Qt的sqldrivers目录下,即可解决这个问题。
9151





