【环境配置】QT 5.12.3 QMYSQL driver not loaded

前前言

如果你的Qt显示有

在这里插入图片描述
但是还是显示 QMYSQL driver not loaded 的话,按照我的情况如果你的Mysql版本是很新的,那么有可能是Qt不支持此版本的Mysql,可以尝试下载一个旧版本的(我的是5.7.34)

前言

最近想装一下QT,但是在连接MySQL的时候,总是报 QMYSQL driver not loaded。研究了好几天,终于成功装上了,在这里总结一些经验,希望可以帮有需要的人。

一些经验

Qt与mysql连接最主要的部分有两个,一个是qt连接MySQL的插件,一个是MySQL提供的dll库

PART1

先说第一个,也就是qt连接MySQL的插件。这个东西的位置在 D:\Qt\5.12.3\mingw73_64\plugins\sqldrivers
这个文件夹里有好多dll库
在这里插入图片描述
注意到我的电脑里是有 qsqlmysql.dll 和 qsqlmysqld.dll 的,但是有些可能没有,这跟QT的版本有关系,据说5.12.3版本之前的都有,之后的就没有了。如果没有这个插件的话,使用
在这里插入图片描述
在这里插入图片描述
输出的结果里是没有QMYSQL和QMYSQL3的(因为我这里有这两个dll,才显示有QMYSQL的)
如果没有的话也不要紧,上网查一下怎么自己编译出这两个dll,我自己也编译过,不是很麻烦。

PART2

再来说第二个部分,这个部分的库是由MySQL提供的,位置在D:\mysql-5.7.34-winx64\mysql-5.7.34-winx64\lib(就是MySQL安装的位置)
在这里插入图片描述
我们需要的就是libmysql.dll 和 libmysql.lib这两个,把他们复制到 D:\Qt\5.12.3\mingw73_64\bin 里面,如果一切正常的话,应该就可以用了。
但是还有可能有一种情况,就是 虽然显示有 MYSQL3 和 MYSQL ,但是连接的时候显示 QMYSQL driver not loaded
我遇到的就是这种情况,原因就是Mysql的版本太新了,我一开始用的是8点多的版本,后来换成5.7.34,就没有问题了。
其实Qt根本不需要你本地装有MySQL,它只是需要libmysql.dll 和 libmysql.lib两个库而已,所以下载的MySQL安装包也不需要安装,只要拿出来这两个文件就了。

总结

可以把QT和MYSQL的连接总结为
QT -> MySQL的driver -> MySQL的dll -> MySQL
我们需要的也就是中间的两个模块,如果使用qDebug()<<QSqlDatabase::drivers();可以看到有MYSQL 和 MYSQL3的话,就说明第一个(MySQL的driver )是没有问题的,如果在此基础上还是QMYSQL driver not loaded的话,就考虑是不是MySQL的版本问题

再深入些

抱着非常好奇的心态,我打算看看MySQL.dll里面到底有什么。使用VS的dumpbin就可以很轻易的查看有dll了(为了这个我还特意装了VS)
在这里插入图片描述
可以看到里面主要是SQL提供的函数接口,有一百多个,加上这个dll之后就可以调用这些函数来执行sql了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值