Qt连接Mysql出现问题(一):“Driver not loaded Driver not loaded“

目录

QT连接MYSQL简易流程:

1. 安装MySQL数据库和MySQL驱动

2. 确保驱动可用

3. 添加MySQL驱动到Qt

对于Windows:

对于Linux:

对于MacOS:

4. 编写连接代码


问题如图:

第一眼看见这张图我也觉得很奇怪,显示有QMYSQL但是又说没有,这不自相矛盾吗!

这种很可能是你的QT是带着驱动的,但是缺少一些关键文件(自己的猜想),所以运行不起来,我们去下载即可,根据我们编译器的位数,由图可见我的位数是32,我下载了一个文件

https://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-win32.zip

上面的是迅雷的下载连接

将这两个文件移动到你Qt所缺的地方  C:\Qt\Qt5.11.1\5.11.1\mingw53_32\bin

这是我所缺的路径,如果不知道怎么查看就按照我这个步骤试试,指不定奇迹就来了。

当然还有一些密码的问题,那个网络上有很多教程,大家可以搜一搜。

至此,大功告成。

QT连接MYSQL简易流程:

在Qt中连接MySQL数据库,通常需要以下几个步骤:

1. 安装MySQL数据库和MySQL驱动

确保你的系统上已安装了MySQL数据库服务器,并且它是运行状态。对于Qt应用来说,还需要MySQL的Qt驱动(QMYSQL),这个驱动可能不会随Qt安装包自动安装,需要手动配置或编译。

2. 确保驱动可用

在开始编写代码之前,你需要确认Qt环境中已经包含了MySQL的驱动。可以通过以下代码片段在程序中检查可用的数据库驱动:

Cpp

1#include <QtSql>
2#include <iostream>
3
4int main() {
5    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
6    QStringList drivers = QSqlDatabase::drivers();
7    for (const QString &driver : qAsConst(drivers)) {
8        std::cout << "Available driver: " << driver.toStdString() << std::endl;
9    }
10    return 0;
11}

如果QMYSQL没有出现在输出的驱动列表中,你需要按照以下步骤添加MySQL驱动。

3. 添加MySQL驱动到Qt

对于Windows:
  • 确保你的Qt和MySQL位数匹配(都是32位或都是64位)。
  • 将MySQL安装目录下的libmysql.dll复制到Qt的bin目录下。
  • 如果使用Qt Creator,确保MySQL的开发库(如libmysql.lib)在项目设置的库路径中。
对于Linux:
  • 安装MySQL开发库,通常通过包管理器如apt-get install libmysqlclient-dev(Ubuntu/Debian)或yum install mysql-devel(RPM-based系统)。
  • 在你的.pro文件中添加如下行:

  • Makefile
    1QT += sql
    2LIBS += -L/path/to/mysql/libs -lmysqlclient
    3INCLUDEPATH += /path/to/mysql/include
    确保替换路径为实际的MySQL库和头文件路径。
  • 如果Qt源代码中包含MySQL驱动源码,需要编译该驱动。进入qtbase/src/plugins/sqldrivers/mysql目录,然后执行qmake和make。
对于MacOS:
  • 类似于Linux,需要安装MySQL开发库。
  • 在Qt项目中正确配置路径。

4. 编写连接代码

在确保驱动可用后,你可以使用以下示例代码来连接MySQL数据库:

Cpp

1#include <QCoreApplication>
2#include <QtSql>
3#include <QDebug>
4
5int main(int argc, char *argv[]) {
6    QCoreApplication a(argc, argv);
7
8    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
9    db.setHostName("localhost"); // 或数据库服务器地址
10    db.setDatabaseName("your_database_name");
11    db.setUserName("your_username");
12    db.setPassword("your_password");
13
14    if (!db.open()) {
15        qDebug() << "Cannot open database:" << db.lastError().text();
16        return 1;
17    } else {
18        qDebug() << "Connected to database!";
19        // 这里可以执行SQL查询、插入等操作
20    }
21
22    return a.exec();
23}

记得替换上述代码中的数据库名、用户名和密码为实际值。

完成以上步骤后,你的Qt应用程序应该能够成功连接到MySQL数据库并执行数据库操作了。如果遇到问题,检查错误信息,确认MySQL服务是否运行,以及网络、权限等因素是否正常。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笨笨小乌龟11

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

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

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

打赏作者

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

抵扣说明:

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

余额充值