QT连接MySQL数据库,手动编译动态链接库,解决QMYSQL driver not loaded错误

添加补充的的:
注意:qsqlmysqld.dll 与 qsqlmysql.dll都要放入sqldrivers文件夹,一个是编译debug模式时用的,一个是release模式用的

如果打包还要把MySQL安装目录下的bin目录中的libmysql.dll手动复制到打包目录下

首先,在网上有些说法是直接把MySQL里的动态链接库libmysql.dll放到QT安装目录下的,是无法解决QMYSQL driver not loaded错误错的,不知道这些人有没有测试。通过查看QT安装目录插件文件夹中关于数据库的动态链接库,没有mysql的。路径为:

***\Qt\Qt5.12.12\5.12.12\mingw73_64\plugins\sqldrivers

在这里插入图片描述
MySQL5.7的64位库已经打好了,可以直接下载:https://download.csdn.net/download/ren365880/86247243

手动编译

首先打开QT安装目录下的源码包,找到mysql的文件夹:我的路径为下:

D:\Qt\Qt5.12.12\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql

修改里面的2个文件,请用QT打开,因为修改后还需要用QT编译。

打开mysql.pro文件
注释掉QMAKE_USE += mysql
结尾添加几行代码:
# 添加你自己的mysql安装目录下的include文件夹
INCLUDEPATH += "C:\tool\MySQL\include"
# 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件
LIBS += "C:\tool\MySQL\lib\libmysql.lib"
# 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。
DESTDIR = ../mysql/mysqlDll
打开qsqldriverbase.pri文件
注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri)
当前路径的上层路径sqldrivers\中并没有这个qtsqldrivers-config.pri文件,只有configure.pri文件。
改为:
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)

在这里插入图片描述
修改完成这里后点击QT的锤子图标进行编译,编译过程中如果失败看一下路径是不是有中文,空格之类的。
成功后如下图:
在这里插入图片描述
把qsqlmysqld.dll复制到QT安装目录下的

**\Qt\Qt5.12.12\5.12.12\mingw73_64\plugins\sqldrivers

这是再去链接MySQL就成功了。

如何链接MySQL,连接多个数据库

首先项目的.Pro文件中加入

QT += sql

mainwindow.h文件中引入库

#include <QSqlDatabase>

然后再.cpp中就可以使用了

 第二个参数为连接的名称,这里设置的不同,就可以有不同的链接对象,能连接多个数据库
 QSqlDatabase from = QSqlDatabase::addDatabase("QMYSQL","from");
 from.setHostName(ip);127.0.0.1
 from.setPort(port);3306
 from.setDatabaseName(ui->fromDatabase->text());数据库名
 from.setUserName(name);账号
 from.setPassword(passowrd);密码
 fromStatus = from.open();是否打开

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里藍天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值