前言
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的安装目录修改)
注:如果没有qsqlmysql.dll文件,则说明需要自己编译源码中Mysql模块来生成qsqlmysql.dll。然后将其放到该目录下,则才可以继续使用Mysql。
二、源码中编译Mysql生成qsqlmysql.dll
1.源码准备,如果在以前安装过程中没有选择安装源码,则可以在重新安装选择安装源码,只要与原安装不在一个目录即可,然后用完卸载,至少我是这样做的。
2.然后在目录C:QtQt5.14.25.14.2Srcqtbasesrcpluginssqldrivers(根据自己安装目录修改)下可以找到如下图的文件夹:
3.打开mysql文件,点击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目录下