Qt连接MySQL报错,QMYSQL driver not loaded QSqlDatabase,踩坑和解决

今天想做一个跟数据库连接的商品查询的Qt客户端,由于用的是MySQL,出现了一系列麻烦的问题,做一次记录和总结,希望能帮到遇到同样问题的人。

最先开始在.pro文件中加入

QT       += sql

此时使用QSqlDatabase中的方法与数据库进行连接,可能会出现以下报错

这个报错的原因是:Qt中缺少和MySQL的连接插件,缺少qmysql.dll

问题解决方法如下:

1.查看Qt安装目录下有无MySQL插件,位置是自己的安装时的位置,我的位置是:E:\Qt\5.12.12\mingw73_64\plugins\sqldrivers

如果没有qmysql.dll,进行第二步

2.找到Qt源码中的MySQL源码,如果没有安装Qt源码,重装Qt,安装源码的进行下一步

3.MySQL源码位置如下(查找自己的安装位置):

E:\Qt\5.12.12\Src\qtbase\src\plugins\sqldrivers

4.进行下一步,双击打开mysql.pro文件,加入下面三行代码

INCLUDEPATH += H:/mysql-5.7.27-winx64/include/    # 添加你自己的mysql安装目录下的include文件夹
LIBS += H:\mysql-5.7.27-winx64\lib\libmysql.lib    # 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件
DESTDIR = ../mysql/mysqlDll    # 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪

5.对mysql.pro文件所在项目进行编译(不是你创建的项目,不要搞混)

6.出现如下两个错误

Cannot read H:/qtsqldrivers-config.pri: No such file or directory
Project ERROR: Library 'mysql' is not defined.

这时候进行下一步

7.打开qsqldriverbase.pri文件(建议直接通过Qtcreator打开mysql.pro文件,这样两个文件都会在Qt的左侧边栏),将include($$shadowed($$PWD)/qtsqldrivers-config.pri进行注释,添加include(./configure.pri)

8.打开mysql.pro文件,注释QMAKE_USE += mysql,进行下一步

9.对mysql项目进行构建,获得qsqlmysql.dll和qsqlmysqld.dll文件

10.将上面两个文件加入到

E:\Qt\5.12.12\mingw73_64\plugins\sqldrivers(自己的安装位置)

将mysql安装目录下的lib文件夹下的libmysql.dll,复制到Qt编译器的bin目录下

我的mysql位置:G:\MySQL\MySQL_Server_8.0\lib

我的bin目录位置:E:\Qt\5.12.12\mingw73_64\bin

大部分人到这一步已经能够解决问题,如果此时你的数据库连接已经正常,本文到此结束,如果仍然无法连接,或者爆了上百个错误,请继续看下一步。

1.选择64位的Qt构建,32位的Qt构建会爆出上百个错误,具体原因没搞清楚,这里只给解决方法,在Qt中的项目界面(一个扳手的图标),无法选择点击下图位置进行添加

此时构建成功,就会获得第9步的两个文件,继续进行即可。如果仍未产生文件,本文也无法解决。

2.如果得到了上述文件并且进行了对应位置的复制,此时仍然无法解决报错,将两个文件复制到Qt源码中的

E:\Qt\5.12.12\Src\qtbase\src\plugins\sqldrivers这个位置(找好自己的安装目录)

并且将你的数据库项目的构建改为64位(自己做的项目,不是上述提到的mysql源码项目)

就此问题解决,如果还没连接的话建议查看自己代码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值