IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Qt客户端开发——与mysql数据库连接的驱动加载问题 -> 正文阅读

[大数据]Qt客户端开发——与mysql数据库连接的驱动加载问题

前言

  • 对于刚接触Qt的开发者来说,连接数据库是一个令人头疼的问题,本人刚接触Qt时也遇到了很多坑,在连接mysql数据库问题上花费了两三天的时间才解决,本文记录解决Qt连接mysql的驱动问题,希望帮助更多开发者少走弯路!
  • 如果觉得对你有帮助,不妨一键三连哈!
  • 本文为博主的经验总结!部分操作参考了其他博主的文章,但由于时间有些久远,未有保存原文链接,有问题私信本人附上参考链接!

解决方法1:使用mysql安装目录下已编译的驱动【不一定有效】

由于mysql驱动对所有Qt版本都通用的,所以,此方法未必有效。之前测试过,Qt5.9 MSVC2017和mysql5.7有效,其他的无效

  • 方法:将mysql的lib文件夹中的动态库复制到Qt对应编译器的bin目录下即可
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
error open database "Driver not loaded Driver not loaded"

解决方法2:手动编译mysql【与所用的编译器匹配】

  • 方法:

    • ①进入Qt源码的目录【安装Qt时需要选择安装source才有该目录】:D:\DevEnv\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql

    • ②修改mysql.pro文件

      # 添加如下信息,并注释掉QMAKE_USE += mysql
      INCLUDEPATH +="D:\DevEnv\mysql-8.0.23-winx64\include"  # mysql头文件目录
      LIBS +="D:\DevEnv\mysql-8.0.23-winx64\lib\libmysql.lib"  # mysql库文件目录
      DESTDIR  = ../mysql/lib/  # 指定编译后输出位置
      

      在这里插入图片描述

    • ③编译
      在这里插入图片描述

        > 使用Qt 5.15.2 MinGW 64bit编译,生成的动态库只适合此编译器
      
    • 出现了一个问题【此问题似乎可以不用管它】
      在这里插入图片描述

      • 解决办法,修改如下文件:
        在这里插入图片描述
  • 编译MSVC可能会出现:Qt之msvc-version.conf loaded but QMAKE_MSC_VER isn’t set

    解决办法:在D:\DevEnv\Qt\5.15.2\msvc2019_64\mkspecs\common的msvc-version.conf配置文件中添加QMAKE_MSC_VER = 1900即可
    在这里插入图片描述

    • 再次编译,生成lib文件夹【MinGW和MSVC生成的文件不太一样】

    在这里插入图片描述

    • 复制lib文件夹的文件到

      在这里插入图片描述

      注意:此方法同样需要复制mysql/lib目录下的文件到Qt的bin目录下

  • 连接测试

    qDebug() << QSqlDatabase::drivers();
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("wordmemory");
    db.setUserName("root");
    db.setPassword("123456");
    bool ok = db.open();
    
    if (ok) qDebug() << "连接数据库ok";
    else qDebug() << "连接数据库失败";
    

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:51:47  更:2021-10-15 11:52:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:08:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码