世界上最遥远的距离,是Qt和MySQL的距离


一、概述

最近学习腾讯课堂奇牛学院的VIP课程项目,项目用到了Qt和MySQL数据库
这篇文章记录了Qt项目因缺少相关插件,而无法连接MySQL的解决方案。用到的方法结合了奇牛学院老师给出的方案,以及Qt官方文档:SQL数据库驱动

Qt的QSqlDatabase支持MySQL数据库连接但程序运行时候需要一些动态库
如果没有相关插件,程序运行会导致数据库连接不成功
BUG展示

Qt官方没有直接提供这些动态库,但Qt提供了生成插件用的源代码,安装Qt的时候勾选上Source就能在Qt安装目录中找到相关源码。所以我们可以使用源码生成相关插件
正常安装插件后,程序就可以正确连接到数据库
BUG消除后

注:如果你的程序如图所示,可以加载qsqlmysql驱动,但紧接着下一行提示qsqlmysql已卸载,那么可以直接跳到第五节查看libmysql.dll文件是否被加载。

二、插件生成环境

操作系统:WIN10 - 64位
Qt版本:5.15.0
Qt编译器(Qt安装时勾选):MSVC2019 - 64位
MySQL版本:8.0.20 - 64位
注:使用其它版本也应该可以正常生成,只要编译器版本(32、64位)和MySQL版本相同就行。


三、编译插件

1、打开插件项目

如图,进入Qt安装目录找到sqldrivers.pro项目文件,用QtCreator打开
Qt安装目录\Qt\5.15.0\Src\qtbase\src\plugins\sqldrivers
打开项目

2、修改项目设置

  • 注释掉可能引起编译错误的代码行
  • 添加编译时需要用到的头文件和库文件(有空格的路径需要用双引号括起来)
#注释掉可能引起编译错误的代码行
#QMAKE_USE += mysql

#添加编译时需要用到的头文件和库文件(有空格的路径需要用双引号括起来)
INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"

项目设置

3、构建项目

  1. 鼠标右键mysql项目文件夹;
  2. 选择“构建mysql”;
  3. 等待构建成功。
    构建插件

四、安装插件

方法一:手动复制

直接复制生成好的动态库文件和调试文件到Qt插件目录
Qt安装目录\Qt\5.15.0\msvc2019_64\plugins\sqldrivers
手动复制

方法二:使用nmake指令复制

  1. 以项目环境打开控制台;
  2. 使用cd指令进入已经生成好的mysql目录;
  3. 输入 nmake install 指令,等待它自动安装(复制)。
    打开控制台进入目录并安装

五、驱动安装后,依然提示“QMYSQL driver not loaded”?

BUG表现
原因是程序加载了qsqlmysql驱动后,qsqlmysql驱动会自动加载libmysql.dll,如果程序运行时候没有找到这个动态库文件,就无法正常加载qsqlmysql驱动
我个人没有遇到这样的问题,以下解决方法是课程老师提供的:
到mysql安装目录下,进入lib文件夹,找到libmysql.dll文件,复制到Qt对应版本编译器的bin文件夹中。
找到libmysql目录
复制libmysql动态库到qt目录
做完这一步后,问题应该就已经解决了。

如果这篇文章解决了你的问题,请点个赞或者分享一下链接(页面底部),让更多的人能快速解决这个问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值