本篇教程分为三个部分:

  1. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)
  2. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(二、编译连接)
  3. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(三、问题整理)

阅读本文之前需要先查看我的第一篇文章:

【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)

一、测试结果(测试连接代码在第一篇文章中)

1.第一种:可用驱动中有QMYSQL这个驱动,但是不能加载(刚尝试qt连接mysql的没有复制文件到指定文件夹的不存在这种情况)

2.第二种:可用驱动中没有MYSQL驱动,并且不能加载(第一次尝试基本都是这种报错)

二、编译连接过程

从上述结果报错结果可以知道我们没有MYSQL驱动,那去哪找到mysql驱动呢?QT5.13.2和QT5.14.1两个版本都提供了编译MYSQL驱动的源码,只需要结合我们自己电脑上安装的MYSQL的库文件就可以编译属于自己的MYSQL驱动,MYSQL安装见前一篇文章。

1、找到QT上编译MYSQL驱动的源码

源码的位置在(以qt5.13.2版本为例):F:\Qt\Qt5.13.2\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql(小伙伴找到qt目录,安装这个文件夹顺序找)

可以看到有以下六个文件,mysql文件夹是我自己备份的文件夹,建议大家在操作之前也进行备份。要是没有这个文件夹可能是安装时选择的组件不足,可以重新安装选择所有组件。

2.用qt打开这个mysql.pro工程文件

打开以后会出现配置项目选择哪一种编译器的界面,这里就需要查看你自己安装的MYSQL是32位还是64位的,如果是64位的MYSQL,则需要用64位的编译器,即Desktop Qt 5.13.2 MinGW 64-bit,本文采用的是32位的。

3.右击项目选择重新构建项目如下图

会出现下面报错:

需要我们将 QMAKE_USE += mysql 这句话注释掉

4.注释掉后,再次进行重新构建项目

会出现以下错误:

主要是因为我们没有mysql.h这个文件,那么这个文件在哪?在我们自己安装的mysql里面,在sql安装目录的include下(我的路径:F:\MySQL\MySQL Server 5.5\include)。

所以需要我们在.pro文件添加这些路径,也即加上下面这两句话,路径是我自己的,需要改成你们自己的:

INCLUDEPATH+="F:\MySQL\MySQL Server 5.5\include"
LIBS+="F:\MySQL\MySQL Server 5.5\lib\libmysql.lib"

5.加上这两句话后再次进行重新构建

(1)出现下面的bug表示你用的qt MinGW 位数与MYSQL位数不一致

(2)若出现下面的bug,若是不出现可能就表示编译出驱动,直接看第六步。

这个bug下面图片上的这句话有关系,我测试的时候原来的相对路径不好用,所以我才用的绝对路径,大家可以自由选择,改成自己文件的路径即可。

我们按照这个路径打开这个文件(用记事本即可)可以看到include里面的qtsqldrivers-config.pri文件并不存在,而存在configgure.pri这个文件,所以我们将include包括的文件改成configgure.pri这个文件,即改为:include(./configure.pri)

6.再次进行重新构建,构建过程可以查看“4编译输出”这一栏的输出

出现下面的结果就表示我们编译成功了!

7.编译成功以后就可以直接去找我们编译成功后的驱动,因为我们没有设置输出目录所以默认在qt安装的盘下,比如我的qt在F盘,所以这个输出也在F盘,路径:F:\plugins\sqldrivers

8.将编译好的驱动(所有文件复制过去就行,省事)放到对应的MinGW编译器的文件夹中,我用的32位的就放在:F:\Qt\Qt5.13.2\5.13.2\mingw73_32\plugins\sqldrivers中,64位的就在F:\Qt\Qt5.13.2\5.13.2\mingw73_64\plugins\sqldrivers中。

9.编译测试代码,注意是测试代码,不是上边的mysql代码。测试代码见第一篇文章。注意编译也需要用对应的编译器,生成是32位的就要用32位的编译器,64位的就是64位的编译器。

结果如下,这表示已经存在驱动,但是还没有加载,还需要我们从mysql的安装目录复制文件到MinGW的文件夹中。

10.将F:\MySQL\MySQL Server 5.5\lib中的libmysql.dll与libmysql.lib复制到mingw的bin文件夹中即:F:\Qt\Qt5.13.2\5.13.2\mingw73_32\bin。

11.再次对测试代码进行测试发现成功!

部分报错问题请查看第三篇文章:【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(三、问题整理)

转载参考分享此篇文章请注明出处!

【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(二、编译连接)相关推荐

  1. vc6配置c语言编译环境,驱动WDK7600在VC6.0下的编译开发配置环境

    网上找了很多资料,都不好使.相信有很多像我一样偏好VC6.0的家伙,最新的WDK真的用不了么?必须可以!!! 开始之前要一定要明确一件事情,单独使用WDK+记事本就可以开发驱动,和VC的编译器耗无关系 ...

  2. sqllite连接远程mysql_sqlite数据库如何远程连接?

    sqlite数据库如何远程连接代码如下: QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE"); db.setHostName ...

  3. 戴尔服务器光盘装Linux系统,DELL服务器引导光盘下载连接,DELL引导盘万能驱动支持所有型号...

    DELL服务器引导光盘下载连接,DELL引导盘万能驱动支持所有型号 注意了.以下连接有所有的DELL服务器引导光盘驱动.请注意DELL服务器是DVD光驱还是CD光驱然后下相应的ISO 下面引用原文 如 ...

  4. 【全教程】qt连接mysql——从qt编译mysql驱动到qt连接mysql数据库(一、编译连接前准备)

    一.说明 电脑系统:win10 qt版本:5.13.2和5.14.1(测试均成功) mysql版本:MySQL-5.5 本篇教程分为三个部分: [全教程]qt连接mysql--从qt编译mysql驱动 ...

  5. Qt连接mysql数据库、数据库开启远程连接,实现QQ登录、注册、修改密码功能(已实现),后续继续更新中...

    视频示例:如下直通车 Qt连接数据库 个人博客直达 一.安装Mysql数据库软件 1.下载安装连接:点击连接 2.解压,打开如下 3.设置环境变量 4.修改添加环境变量 5.新建配置文件my.ini( ...

  6. 【Qt】Qt5.12版本编译Oracle驱动教程

    00. 目录 文章目录 00. 目录 01. Qt5.12安装 02. Qt安装注意事项 03. Qt版本和Oracle安装路径说明 04. Qt5.12编译Oracle驱动(使用MinGW 64位) ...

  7. qt4.7 mysql 6.3 版本_详解Qt 4.7编译和访问Mysql驱动

    Qt4.7编译和访问Mysql驱动是本文要介绍的内容,不多说,我们来看内容.今天摸索了一上午,终于用qt连上mysql了 1.安装一个mysql5.0以上版本*** 要求:(1)安装路径不要有空格和点 ...

  8. arm qt mysql插件_编译ARM平台的QtEmbedded的MySQL插件和移植MySQL

    编译ARM平台的QtEmbedded 的MySQL插件和移植MySQL 到ARM开发板 经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把MySQL也移植到了m ...

  9. 红帽linux 下qt 5.13.1 编译 mysql80驱动(内含升级gcc版本)

    前言: 本地一台redhat linux虚拟机已经安装了qt5.13.1以及mysql80 详细的安装流程可通过如下链接查看 linux 安装qt    安装mysql 在qt的数据库编程阶段,需要对 ...

最新文章

  1. 科学家从脑电图中解读大脑的运动意图
  2. 高级C语言教程编码风格
  3. SiameseRPN详解
  4. 【LeetCode - 443】压缩字符串(模拟)
  5. SQL必知必会-使用游标
  6. 配置阿里云docker加速与云镜像配置
  7. Promise的deferred对象详解
  8. poj 3928 树状数组
  9. 蚂蚁自研数据库OceanBase基于木兰公共协议正式开源
  10. C程序设计案例(牛顿迭代法求高次方程的根)
  11. 山东大学校内网盘开发日志4-目前开发思路
  12. fortran---说实话,不知道记录有什么用 写着玩吧
  13. HZNUOJ 2058 凯撒密码
  14. 什么是业务中台、数据中台、技术中台?
  15. AI人脸识别的实现SDK
  16. cad指定服务器名称,天正打开后CAD显示服务器名称为空? CAD 服务器名称为空
  17. 竞业协议“下沉”,普通程序员逃不过的坑
  18. 有限体积法求解二维方腔流(二)——边界条件处理及SIMPLE和PISO算法
  19. 基于java码头船只出行及配套货柜码放管理系统(含源文件)
  20. shell的sort命令的-k参数

热门文章

  1. android 加花工具下载,Android 代码混淆并加花
  2. 神奇电子计算机 教学设计,大连理工版三年级下册信息技术 7. 神奇的艺术字 教案...
  3. idea启动项目提示端口占用怎么办
  4. 刚刚!核电老将俞培根晋升东方电气集团董事长
  5. 深度解析!短视频如何成为现象级产品
  6. 期末作业代码网页设计代码——网站商城后台通用模板(30页) 大学生后台模板网页作品商城网页设计作业模板 学生网页制作源代码下载
  7. 上传图片 可限制大小和文件类型
  8. 可以伪装成计算机的应用,伪装成计算器隐藏应用软件
  9. java经典50道编程题(很好练逻辑思维的题)(第一篇)
  10. keras实现回归预测