近来在弄Qt 中用到mysql,发现自带的并没有mysql,只有sqlite,所以我就网上找了教程,按照教程按照mysql,
安装mysql参考该链接https://www.cnblogs.com/winton-nfs/p/11524007.html
编译mysql源码参考这个链接https://waleon.blog.csdn.net/article/details/105071549
https://blog.csdn.net/howard789/article/details/100059469
编译Mysql动态库:生成的动态库qsqlmysql.dll、qsqlmysqld.dll
编译mysql源码时,我发现目录路径如果有空格,找不到mysql.h头文件,可是我明明包含了,关键就在于这个空格,下面是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
win32:LIBS += -L$$quote(D:/Program Files (x86)/mysql-8.0.24-winx64/lib) -llibmysql
INCLUDEPATH += $$quote(D:/Program Files (x86)/mysql-8.0.24-winx64/include)
DEPENDPATH += $$quote(D:/Program Files (x86)/mysql-8.0.24-winx64/include)
include(../qsqldriverbase.pri)
拷贝生成的动态库:
拷贝生成的动态库 qsqlmysql.dll、qsqlmysqld.dll到C:\Qt\Qt5.14.0\5.14.0\msvc2017_64\plugins\sqldrivers\
最后发现虽然显示有mysql,但是还是报错 QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
一直在找,是否是mysql和qt 的位数对不上?32bit /64bit,原来是要
拷贝mysql目录mysql-8.0.24-winx64\lib里面的libmysql.dll文件到QT安装目录的bin目录(本人是:C:\Qt\Qt5.14.0\5.14.0\msvc2017_64\bin)即可,而不是拷贝到C:\Qt\Qt5.14.0\5.14.0\msvc2017_64\plugins\sqldrivers
否则连接数据库会报错:QSqlDatabase: QMYSQL driver not loaded