QT连接mysql问题解决:QSqlDatabase: QMYSQL driver not loaded

QT连接mysql问题解决:QSqlDatabase: QMYSQL driver not loaded

QT [版本号:Based on Qt 5.15.2 (MSVC 2019, 64 bit),MySQL:8.0] 连接数据库问题解决

经过一天的折腾,记录一下解决问题的步骤,避免大家在CSDN上翻来翻去。

解决方法

首先,大家的mysql服务器开没开。。。以管理员身份打开cmd,输入net start myql,打开mysql服务器(命令无效说明没有将mysql加入路径中,我就不介绍了,不是这篇文章的重点~)

这些解决方法是我遇到的问题中所看到的解决方法,我只是汇总一下,在解决问题前大家首先要确保自己的QT编译器版本和MySQL都是64位或者32位的(有些学校平时上课给的可能是32位编译器,我想说一声:大人时代变了~哈哈哈),至于说为什么要保持位数一致,我也在研究 ~

  1. 简单问题 ,如果这样你就成功了,那你简直是luck dog。。。。;
    这种问题是因为编译器缺少驱动数据库的驱动文件你只需要将MySQL安装目录下的驱动文件放到QT编译器的bin文件夹里。(如图)

数据库的驱动文件:一般放在MySQL安装目录的lib文件夹中: 在这里插入图片描述
将上述两个文件放在QT编译器的bin文件夹里
在这里插入图片描述
在这里插入图片描述

  1. 如果上面那个方法没有解决,那么恭喜,下面要复杂一点打开QT编译器安装路径:D:\Qt\5.12.12\mingw73_64\plugins\sqldrivers(根据个人情况),会发现缺少MySQL相关的驱动插件(qsql什么的,只有qsqlite什么的),这时候就需要自己进行编译了

打开mysql的源码路径:D:\Qt\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql
(如果你没有Src文件夹,那你可能安装QT的时候没有勾选source选项,芜湖,重装吧…,打开QT安装文件,找到下图所示的exe可执行程序,移除qt,重新安装…

在这里插入图片描述
如果有,那么打开mysql.pro工程文件,
在这里插入图片描述
在相应位置加入我标蓝的三行代码:
下面展示一些 内联代码片

#该路径是的Mysql的头文件(include)路径
INCLUDEPATH +="D:\mysql\include"
#这是MySQl的库文件路径
LIBS +="D:\mysql\lib\libmysql.lib"
#为了方便查找,不妨增加一条语句,该语句用来指明编译后的结果输出的位置
DESTDIR = ../mysql/lib/

不出意外的话,你会遇到两个问题:
①Cannot read D:/qtsqldrivers-config.pri: No such file or directory
②Project ERROR: Library ‘mysql’ is not defined.

  • 问题①解决方案:虽然咱没有qtsqldrivers-config.pri这玩意儿,但是发现D:\Qt\5.12.12\Src\qtbase\src\plugins\sqldrivers文件夹下有configure.pri,于是在qt里的左侧栏里,双击qsqldriverbase.pri打开该文件,将第四行注释掉,在下一行加入:include(./configure.pri)
    如图:
    在这里插入图片描述

  • 问题二解决方案:在qt里的左侧栏里点击mysql.pro,注释掉`QMAKE_USE += mysql,如图:
    在这里插入图片描述
    点击编译,问题解决。
    编译成功后在D:\Qt\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql文件夹下会出现lib的文件夹,点击进去,
    在这里插入图片描述
    我在网上看到的编译成功的文件和我的有些不同,既然分不清,那就将里面的文件全部复制进入D:\Qt\5.12.12\mingw73_64\plugins\sqldrivers路径中(注意文件路径,是编译器的路径)
    在这里插入图片描述

  • 最后一步!!!,添加MySQL连接的扩展包libmysql.dll和libmysql.lib,这个包在我们的MySql安装目录D:\mysql\lib中(每个人的安装路径会有不同),将这两个扩展包添加到Qt安装目录 D:\Qt\5.12.12\mingw73_64\bin中:,至此连接完成。
    在这里插入图片描述
    在这里插入图片描述

ps:有一部分人还是会出现没有mysql.h这个头文件这个问题,我第二次弄也遇到过,然后我重新安装MySQL,将安装文件路径从C盘放入了D盘,我怀疑可能是权限问题,还有可能是有的同学粗心将LIBS +="D:\mysql\lib\libmysql.lib"中的lib搞成了ddl,还有一种可能是因为我之前MySql和QT版本低的原因,总之这些方法既然能解决我的问题就证明是有效的,最后感谢大佬。

参考文章链接: https://www.freesion.com/article/5217444106/.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值