Qt 5 MySQL数据库驱动没有加载(QSqlDatabase: QMYSQL driver not loaded)的解决方法

最近在学习Qt 时发现自己的Qt版本没有MySQL的驱动,楼主的Qt 和MySQL的版本如下:


Qt 版本:Qt 5.15.1 Windows版
Qt编译器版本:MinGW81_64
MySQL版本:MySQL8.0.17 64位 Windows版


楼主使用下面的Qt代码查看Qt当前支持的数据库驱动:

    //打印Qt支持的数据库驱动
    qDebug()<<QSqlDatabase::drivers();

结果发现Qt 5.15 默认并没有提供MySQL数据库的驱动:
Qt5.15 默认没有对MySQL的驱动支持函
可以发现默认并没有MySQL的驱动!!
原因是:Qt 5在高版本中取消了对MySQL数据库的默认支持,这是因为随着商业版的MySQL推出,MySQL已经不能算是一个完全开源的数据库了,而Qt默认只会给完全开源的数据库提供支持,而上面的数据库都是完全开源的。那么如何给Qt 5.15添加MySQL驱动呢?经过研究,解决方案如下:

第 1 步 -----------------------------------------

首先打开MySQL安装目录下的lib文件夹,楼主的lib文件夹的地址如下:C:\Program Files\MySQL\MySQL Server 8.0\lib
打开后选择 libmysql.dlllibmysql.lib ,复制:
在这里插入图片描述
然后,将其粘贴到 Qt的MinGW编译器的bin文件夹下,楼主的bin文件夹的地址为:
D:\QT5\5.15.1\mingw81_64\bin
大家可以根据自己的安装位置选择合适的位置复制:
在这里插入图片描述

第 2 步 -----------------------------------------

1. 找到Qt安装目录下sql驱动中的mysql文件夹

这是楼主的地址:
D:\QT5\5.15.1\Src\qtbase\src\plugins\sqldrivers
这个地址比较绕,大家不要搞错了,这个地址下有一个文件夹mysql(哈哈,终于找到了),复制一份这个文件夹到桌面(也可以不复制,楼主只是不想改动mysql的安装文件):
在这里插入图片描述

2. 生成Qt的MySQL动态链接库

打开桌面的mysql文件夹,打开其中的mysql Qt工程文件
在这里插入图片描述
其.pro工程配置文件修改为如下:
在这里插入图片描述
运行此工程(只管运行如有报错不用管),运行后,打开桌面mysql的lib文件夹,可以发现新生成的3个dll文件:
在这里插入图片描述
其中,qsqlmysql.dllqsqlmysql.dll.debug 即是我们需要的Qt数据库的驱动文件

3. 复制驱动文件到Qt的sqldrivers文件夹中

选中上面生成的qsqlmysql.dllqsqlmysql.dll.debug 驱动文件(位于桌面mysql文件lib中)并复制:
在这里插入图片描述
然后将其粘贴到Qt安装目录下的sqldrivers文件夹下:
(这是楼主的地址,大家对照寻找自己的地址)
D:\QT5\5.15.1\mingw81_64\plugins\sqldrivers

在这里插入图片描述

4. 大功告成!

现在,我们已经成功给Qt添加了MySQL的驱动!
接下来重启Qt,进行测试,继续使用下面的代码打印Qt支持的数据库驱动:

    //打印Qt支持的数据库驱动
    qDebug()<<QSqlDatabase::drivers();

可以发现已经有MySQL的驱动啦!
在这里插入图片描述
接下来就可以在Qt5.15中正常使用MySQL8.0啦!

5. More

有的人可能不需要第1步,这种情况请直接转到第2步。还有Qt的编译器的位数要和MySQL的位数相同(比如都是64位或者都是32位)。另外配置好MySQL数据库后,在使用过程中也有可能出现QMYSQL drivers not loaded的情况,这时候,大家需要点击左下角的配置图标选择和自己的MySQL版本位数匹配的编译器版本:
在这里插入图片描述
然后重新运行就可以啦!如果还不行就重启Qt再重新配置一下。

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值