QT连接MySQL使用时,“QMYSQL driver not loaded”问题的解决

本文介绍了解决QT与MySQL首次联合使用时报错的方法。通过编译qsqlmysql.dll并正确配置MySQL驱动,使得QT能够顺利连接MySQL数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、错误分析

在QT和MySQL首次联合使用时,大多数情况会报这样的错误: QSqlDatabase: QMYSQL driver not loaded
报这个错的原因就是QT没有MySQL的驱动,即在QT目录下没有qsqlmysql.dll文件,因此我们需要在QT中重新编译一下MySQL的驱动,得到qsqlmysql.dll文件,并将它放到QT合适的目录下。

2、软件版本

MySQL:MySQL server8.0
QT:QT5.14

3、解决步骤

(1)、通过QT安装目录里的src源码编译qsqlmysql.dll文件

  • 在QT安装目录下的src源码里找到MySQL文件夹
    这是我的目录:D:\QT5.14\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql
    打开mysql文件夹,里面文件如图:
    在这里插入图片描述
  • 双击用Qt creator打开mysql.pro文件,在里面添加如下代码:
LIBS += -L"C:\Program Files\MySQL\MySQL Server 8.0\lib -llibmysql"  #添加你MySQL安装目录下lib文件夹里的libmysql文件
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"    #添加你MySQL安装目录下的include文件夹
DEPENDPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"     #添加你MySQL安装目录下的include文件夹
DESTDIR = ../mysql/mysqlDll  

注意:上面代码中的文件目录不是唯一的,一定要用自己MySQL的安装目录替换
在这里插入图片描述

  • 点击左下角的“锤子”,进行构建。
    但是点击以后,不出意外的话,会报以下错误:
    Cannot read D:/qtsqldrivers-config.pri: No such file or directory
    Project ERROR: Library ‘mysql’ is not defined.
    这时大家不要着急,咱们一个个解决这些问题:
    (1)Cannot read D:/qtsqldrivers-config.pri: No such file or directory
    这个错误是因为找不到qtsqldrivers-config.pri文件。但是我们在D:\QT5.14\5.14.1\Src\qtbase\src\plugins\sqldrivers文件下可以找到configure.pri这个文件,因此需要在qsqldriverbase.pri文件中进行修改。
    在D:\QT5.14\5.14.1\Src\qtbase\src\plugins\sqldrivers目录下双击打开qsqldriverbase.pri文件,把其中需要qtsqldrivers-config.pri文件的代码(第4行)注释掉,然后添加如下代码:
# include(./configure.pri)

如图所示:
在这里插入图片描述

(2)Project ERROR: Library ‘mysql’ is not defined.
这个问题比较简单,只需将mysql.pro文件中的QMAKE_USE += mysql注释掉。
如图:
在这里插入图片描述
完成以上步骤后,重新点击左下角“锤子”,即构建成功!
然后打开mysqlDll文件夹,发现里面有了驱动文件:
在这里插入片描述

(2)将qsqlmysql.dll文件放到合适的文件夹下

psqlmysql.dll文件复制到D:\QT5.14\5.14.1\mingw73_64\plugins\sqldrivers文件夹下
在这里插入图片描述

(3)、将MySQL目录下的libmysql.dll文件放到合适的位置

将MySQL安装目录下lib文件夹里的** libmysql.dll**文件复制到D:\QT5.14\5.14.1\mingw73_64\bin文件夹。

完成以上步骤后,QT便可以连接使用MySQL了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值