QT QMYSQL driver not loaded 独特解决方案

当你看到我这篇文章的时候,你应该已经在互联网上搜索了很多篇的解决方案,但是即使这样,你最后可能也会出现,QMYSQL driver not loaded的问题,本文与其他文章不同的地方在于,最后一步,解决了这一步,你就能找到为什么明明按照步骤做了,但是依然使用不了mysql驱动的问题。

在两台全新的机器上,从0安装mysql8.X、QT5.12进行测试,亲测可用。

安装环境

Windows

QT 5.12.12版本

mysql 8.x 系列

QT 在安装时选择Sources

QT 在安装时选择64位MinGw

mysql安装在C盘,地址为C:\Program Files\MySQL\MySQL Server 8.0

QT安装在D盘(这个随意,默认安装在C盘也可以),地址为D:\Qt\Qt5.12.12\5.12.12

步骤

STEP1:

找到QT上编译驱动的工程文件

地址为C:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql

  1. 使用QT打开该项目后,先修改mysql.pro文件。

将最后两行的路径改为自己电脑上的mysql路径。

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) 

DESTDIR = $$PWD/lib

INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"
LIBS += "C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib"

  1. 再修改qsqldriverbase.pri文件

将第四行的路径改为自己电脑上的qt路径

QT = core core-private sql-private

# For QMAKE_USE in the parent projects.
include(D:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\configure.pri)
  
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
  
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
  1. Build编译一下项目

STEP2:

将生成的dll文件复制到D:\Qt\Qt5.12.12\5.12.12\mingw73_64\bin文件夹中

首先,将文件夹C:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql\lib中的qsqlmysql.dll、qsqlmysqld.dll文件复制到D:\Qt\Qt5.12.12\5.12.12\mingw73_64\plugins\sqldrivers文件中。

其次,将文件夹C:\Program Files\MySQL\MySQL Server 8.0\lib中的ibmysql.dl、libmysql.lib文件复制到D:\Qt\Qt5.12.12\5.12.12\mingw73_64\bin文件夹中。

做到这步,如果你运行一下包含使用mysql的项目,没有输出QMYSQL driver not loaded问题,那么恭喜🎉🎉🎉,你不需要看最后一步,完美的避开了坑。

STEP3:

为什么我们做完上面的两个大的步骤后,依然会出现QMYSQL driver not loaded问题呢,可能细心的同学们发现,控制台输出的信息中可以看到,qt支持的数据库列表中出现了mysql,但是依然不能使用。

根据前期的博客冲浪以及我的思考和总结,出现该问题的原因在于,你的QT编译的mingw73_64\bin下缺少了一些与mysql相关的dll文件,所以才导致了mysql依然不能被加载的问题。

如下图所示,这里是可以正常运行的mingw73_64\bin文件夹,仔细的看一看,你的文件夹内,跟我的有什么不同⭐️⭐️⭐️。

重点看下图中划红线的几个文件。

在这里插入图片描述

好的,当你看到少了一些文件后,去文件夹C:\Program Files\MySQL\MySQL Server 8.0\bin中,如下图中我的bin文件里中(下图是Mysql文件夹,我后来更改过,如果你安装的是mysql8.X的话,应该就是MySQL Server 8.0文件夹),将缺少的文件复制到D:\Qt\Qt5.12.12\5.12.12\mingw73_64\bin文件中,这时候你再运行下程序。

在这里插入图片描述

大功告成💐恭喜你跨过了QT的一个大坑,祝你QT学习的旅程愉快。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值