Qt缺少Mysq驱动QMYSQL driver not loaded

如果Qt在指定Mysql驱动时,报了这样的错说明缺少mysql相关的动态链接库

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

查看G:\Qt\5.12.12\mingw73_64\plugins\sqldrivers\目录下(qt安装目录)是否有qsqlmysql.dll 和 qsqlmysqld.dll这两个动态链接库。
在这里插入图片描述
如果没有的话需要自己编译构建这两个文件。应为这两个文件是根据自己电脑下的qt环境和mysql环境编译的。
查看Qt安装时中是否下载了源码。
在这里插入图片描述
如果没有可以在Qt源码下载,这里 选择对应的版本进行下载。
在进入G:\Qt\5.12.12\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	这一行要注释掉
INCLUDEPATH += $$quote("C:\Program Files\MySQL\MySQL Server 8.0\include")	#本机mysql的include目录
LIBS += -L$$quote("C:\Program Files\MySQL\MySQL Server 8.0\lib") -lmysql	#本机mysql的lib目录

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(G:\Qt\5.12.12\Src\qtbase\src\plugins\sqldrivers\qsqldriverbase.pri)	#指定这个文件的绝对地址

然后修改一下sqldriverbase.pri

QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)


include(./configure.pri)


PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

点击构建就可以生成链接库,连接库在QT安装目录的根目录下,G:/plugins/~;
在这里插入图片描述
把qsqlmysql.dll和qsqlmysqld.dll复制到G:\Qt\5.12.12\mingw73_64\plugins\sqldrivers\下,并且把mysql的lib目录下的libmysql.dll复制到G:\Qt\5.12.12\mingw73_64\bin下就可以运行了。
同时如果项目需要打包,也需要把libmysql.dll文件同时打包起来。

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值