QT5.13之后的版本需要自行编译Mysql的driver

前言

QT5.13版本后无法使用Mysql。


一、Mysql缺少报错

1.在QT中使用

db = QSqlDatabase::addDatabase("QMYSQL");//加入mysql数据库

2.然后会报以下错误:

QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

3.查看D:SoftwareQT5.14.2mingw73_64pluginssqldrivers目录下(根据自己QT的安装目录修改)
sqldriver
注:如果没有qsqlmysql.dll文件,则说明需要自己编译源码中Mysql模块来生成qsqlmysql.dll。然后将其放到该目录下,则才可以继续使用Mysql。

二、源码中编译Mysql生成qsqlmysql.dll

1.源码准备,如果在以前安装过程中没有选择安装源码,则可以在重新安装选择安装源码,只要与原安装不在一个目录即可,然后用完卸载,至少我是这样做的。

源码安装

2.然后在目录C:QtQt5.14.25.14.2Srcqtbasesrcpluginssqldrivers(根据自己安装目录修改)下可以找到如下图的文件夹:

源码中mysql所在目录

3.打开mysql文件,点击mysql.pro进行配置:

mysql.pro

4.修改mysql.pro

include(C:/Qt/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/configure.pri)
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)

#电脑中Mysql软件的安装目录 mysql5.5/,需要更改为自己电脑的Mysql安装目录
win32: LIBS += -LD:/Software/database/mysql5.5/lib/ -llibmysql

INCLUDEPATH += D:/Software/database/mysql5.5/include
DEPENDPATH += D:/Software/database/mysql5.5/include

5.注意点击编译后生成的文件可能会在安装QT源码时选择的顶级目录下,我的是在C盘目录下找到。

生成结果

6.将其拷贝到D:SoftwareQT5.14.2mingw73_64pluginssqldrivers中。就可以正确的在QT中使用Mysql了。

总结

都是坑。

新增:需要将安装mysql的libmysql.dll拷贝到QT的bin目录下

原文地址:https://www.cnblogs.com/Raowz/p/14568856.html