QT 使用 mysql 数据库

一、 安装Mysql

推荐参照:https://blog.csdn.net/m0_52559040/article/details/121843945

二、 QT连接Mysql

连接Mysql数据库时,出现QSqlDatabase: QMYSQL driver not loaded;QSqlDatabase:available drivers : QSQLITE …

在这里插入图片描述
在QT和MySQL首次联合使用时,大多数情况会出现这个上述情况,很可能是如下问题导致的:

(一)缺少Mysql驱动(在QT目录下没有qsqlmysql.dll文件)

看QT的安装路劲中(我的是D:\Qt\5.15.2\mingw81_64\plugins\sqldrivers),看是否包含qsqlmysql.dll,如果有就说明是不缺少Mysql驱动的。
在这里插入图片描述
如果上述路径中没有的话,就需要把qsqlmysql.dll拷贝到这个目录下。如果找不到这些驱动,就需要去编译源码,生成这些驱动,源码的路劲为:…\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro。

编译源码生成qsqlmysql.dll驱动的方法

在QT安装目录下的src源码里找到MySQL文件夹
我的路径是:D:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql
双击打开mysql.pro文件

1.注释 QMAKE_USE += mysql

在这里插入图片描述

2.在mysql.pro文件的最后添加如下代码:
INCLUDEPATH +="D:\Program Files\MySQL\MySQL Server 8.0\include"   #添加你的mysql安装目录下的include文件夹
LIBS +="D:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib" #添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件
DESTDIR  = ../mysql/myLib/   # 编译生成的qmysql.dll放置的目录,和mysql.pro所在目录一致

编辑mysql.pro文件后的代码如图:
在这里插入图片描述
此时,进行构建后,可能会出现如下的两个错误:
Cannot read D:/qtsqldrivers-config.pri: No such file or directory
Project ERROR: Library ‘mysql’ is not defined.
不要急,关关难过关关过,一个一个去解决,

3.解决Cannot read D:/qtsqldrivers-config.pri: No such file or directory和Project ERROR: Library ‘mysql’ is not defined.

这个错误是因为找不到qtsqldrivers-config.pri文件。双击打开D:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers目录下的qsqldriverbase.pri文件,注释掉 include($ s h a d o w e d ( shadowed( shadowed( $PWD)/qtsqldrivers-config.pri),然后添加include(./configure.pri),最后保存。如图:
在这里插入图片描述
重新构建,构建成功后,在D:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql中找到并打开myLib文件夹就可以找到驱动文件了。
在这里插入图片描述
然后,将qsqlmysql.dll文件放到合适的文件夹下(我的是D:\Qt\5.15.2\mingw81_64\plugins\sqldrivers)
在这里插入图片描述
虽然我按照上面的操作,成功连接了Mysql,但参照网上很多的例子,生成的是qsqlmysql.dllqsqlmysqld.dll两个dll文件,我这样只生成了qsqlmysql.dll一个,但是也成功连接了。至于为什么,希望能有大神能够

(二)缺少库

找到Mysql的安装路劲(我的是:D:\Program Files\MySQL\MySQL Server 8.0\lib)找到libmysql.lib文件(如图)
在这里插入图片描述
将其拷贝至QT相应路径(我的是:D:\Qt\5.15.2\mingw81_64\bin)下,然后重启QT。
在这里插入图片描述

上述问题,我是根据如下大神的不吝赐教予以解决的,链接如下:
https://blog.csdn.net/ss_0507/article/details/121373121
https://blog.csdn.net/zhangjianangyou/article/details/117018024
https://blog.csdn.net/weixin_39912368/article/details/113116866

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值