QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案

QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案

环境

VS2019
mysql Ver 14.14 Distrib 5.7.36, for Win64 (x86_64)
QT 5.15.2 及其源代码

报错

在这里插入图片描述

解决方案

1.检查是否有驱动qsqlmysql.dll,qsqlmysqld.dll

QT安装路径,不同编译器路径下的插件目录里,查找是否有MySQL的库(C:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers),我这里查找,确实没有,因此需要自行编译。
在这里插入图片描述

2.查看网上的驱动编译解决方案,大部分大佬们都采用如下方式

找到QT的源码目录下,关于mysql的项目目录,通过QT打开mysql.pro文件的方式打开项目:
在这里插入图片描述
修改mysql.pro:
1)注释掉QMAKE_USE += mysql,因为会提示找不到mysql;
2)添加MySQL的include目录,及其库目录;
3)设置目标生成文件的存储路径,方便自己查找。PS:我这边开始没设置路径,默认存储在了C:\plugins\sqldrivers目录下。
在这里插入图片描述
在这里插入图片描述
修改qsqldriverbase.pri文件:
1)注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri) ,因为找不到改文件;
2)添加 include(./configure.pri),PS:我这个版本里是这个文件configure.pri。
在这里插入图片描述
构建项目mysql:
前面指定的输出目录下,生成了驱动qsqlmysql.dll,qsqlmysql.lib。
在这里插入图片描述

3. 将驱动放置相关目录下,使其生效

1)将生成的.dll文件复制到C:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers目录下:
在这里插入图片描述
2)将MySQL的库文件libmysql.dll复制到QT对应编译器的bin目录下,C:\Qt\5.15.2\msvc2019_64\bin:
在这里插入图片描述
至此,问题得以解决!

补充说明

编译器使用msvc,则用msvc生成驱动;编译器使用minGW,则使用该编译器生成驱动。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值