软件环境:Qt5.13.1 + MySQL8.0.18 x64
MySQL 8.0.18 安装时安装了选择了Devlopment 环境。
连接数据库错误如下:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
由于Qt5.13 默认没有mysql 的驱动文件,需要自已编译。
具体步骤如下:
Qt5.13.1 安装时选上src,因为要自已编译mysql plugins
用QtCreate 打开 C:\Qt\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
修改成如下:
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)
INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"
之后编译,编译成功后会在C盘生成 C:\plugins\sqldrivers 和 C:\mkspecs目录,将C:\plugins\sqldrivers目录下的的libqsqlmysql.a libqsqlmysqld.a qsqlmysql.dll qsqlmysqld.dll文件复制到 C:\Qt\Qt5.13.1\5.13.1\mingw73_64\plugins\sqldrivers (Qt安装时我选的编译工具为mingw)
将C:\mkspecs目录下的文件复制到C:\Qt\Qt5.13.1\5.13.1\mingw73_64\mkspecs
参考:
https://www.cnblogs.com/forsee/p/11963832.html
https://blog.csdn.net/cmdn669/article/details/100149825