QT编译Mysql驱动文件

一.错误分析

1.Qt报错:QSqlDatabase: QMYSQL driver not loaded
2.原因分析:QT没有MySQL的驱动,即在QT目录下没有qsqlmysql.dll文件。
3.解决方法:需要在QT中重新编译一下MySQL的驱动,得到qsqlmysql.dll文件,并将它放到QT合适的目录下。

二.软件版本

1.Qt:Qt5.15.2
2.MySQL:MySQL Server 8.0

三.解决步骤

1.通过Qt安装目录下的源码编译qsqlmysql.dll文件
(1).在Qt安装目录下的src源码里找到MySQL文件夹:D:\programming\Qt5.15\Install\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql在这里插入图片描述
(2).用Qt Creator打开mysql.pro文件
(3).注释掉

QMAKE_USE += mysql

在这里插入图片描述
(4).添加以下代码

INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
DEPENDPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"

其中的路径为自己MySQL安装的路径,需要根据安装位置做出更改

最后添加编译出来的MySQL驱动文件存放位置的代码

DESTDIR = ../mysql/mylib

在这里插入图片描述
点击构建,不出意外的话会报错:Cannot read D:/qtsqldrivers-config.pri: No such file or directory
这是因为找不到qtsqldrivers-config.pri文件,但是我们在sqldrivers文件夹下可以找到此文件,因此我们需要修改qtsqldrivers-config.pri文件。
在D:\programming\Qt5.15\Install\5.15.2\Src\qtbase\src\plugins\sqldrivers目录下打开qtsqldrivers-config.pri文件,把其中的

include($$shadowed($$PWD)/qtsqldrivers-config.pri)

注释掉

并添加这一句代码:

include(./configure.pri)

在这里插入图片描述
完成以上全部操作后,再次点击小锤子构建项目。
打开mylib文件夹,里面就会有生成出来的适用于当前Qt版本的MySQL驱动文件了。
在这里插入图片描述
2.将对应编译套件的驱动文件放到对应的文件夹下
在这里插入图片描述
这里使用的是MSVC2019 64bit套件,则需要将驱动文件中的qsqlmysql.dll文件放入D:\programming\Qt5.15\Install\5.15.2\msvc2019_64\plugins\sqldrivers文件夹下。

3.将MySQL安装目录下的libmysql.dll文件放入合适文件夹
将MySQL安装目录下lib文件夹里的” libmysql.dll”文件复制到D:\programming\Qt5.15\Install\5.15.2\msvc2019_64\bin文件夹。

完成上述步骤就可以使用Qt连接MySQL数据库了。