相信很多第一次在QT下链接MYSQL的朋友都会遇到这个问题:
读取不到QMYSQL的驱动,QSqlDatabase支持的驱动有:QSQLITE QODBC QODBC3 QPSQL QPSQL7 【就是没有QMYSQL】

那怎么解决呢?如果直接百度、或者在CSDN搜,会有一大堆教程,理论是基本一致的,但是实际的操作过程各不相同。通过我多次的尝试,发现我搜到的教程90%是行不通的。。。结合了多位博主及b站的教程,我成功将QT与MYSQL连接。感谢各位前辈的分享!才有了我这篇博文。

一、概述

QT链接MYSQL的理论过程可参见B站up主甜筒味の冰棍的经验分享视频【经验分享】Qt连接Mysql 01:36-02:18

我是用的QT及MYSQL版本分别为:5.13.0及5.7.30

下载链接:
QT
MYSQL

在很多教程中看到,QT的编译器和MYSQL的位数要相同,也有的说要32位的。我装的QT和MYSQL都是64位的,也就按64位的来

二、QT的安装





主要步骤如上,没写出来的就是直接下一步,或者是accepted之后下一步。

三、MYSQL的安装


选Developer Default(根据自己需要)。
基本是有execute就点execute,没有execute就下一步。execute后弹窗都是accepted+下一步。



设置好密码,一般就设置成123456就行了,方便记忆。【这个密码要记住,登入MYSQL都要用到的】



主要步骤如上,没写出来的就是直接Next,或者是Finish,或者是Execute后Next。

之后我习惯用Navicat进行数据库的管理,安装过程略,有需要的朋友可以直接网上搜教程。


四、QT链接MYSQL

基本就是缺少驱动MYSQL相关的libmysql.dll 、qsqlmysql.dll,编译一个给他就行了。理论方面也不多说了。按照以下的步骤走亲测是可以的。
0、开始之前将QT64位编译器和MYSQL的路径都0加入系统环境变量的path。
右键【此电脑】(win7就是【计算机】)---->【属性】---->【高级系统配置】---->【环境变量】---->双击系统变量里面的path,将对应路径添加进去

C:\Qt\Qt5.13.0\5.13.0\mingw73_64\bin
C:\Qt\Qt5.13.0\Tools\mingw730_64\bin
C:\Program Files\MySQL\MySQL Server 5.7\bin

此处以未修改安装位置的路径为例,如果修改了安装路径,请自行修改为对应的路径。


1、将C:\Program Files\MySQL\MySQL Server 5.7\lib路径下的libmysql.dll文件复制至C:\Qt\Qt5.13.0\5.13.0\mingw73_64\bin

2、打开C:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers\mysql路径下的mysql.pro
此处以未修改安装位置的路径为例,如果修改了安装路径,请自行修改为对应的路径。

将第六行的QMAKE_USE += mysql注释掉,修改为#QMAKE_USE += mysql(前面加#)

加入mysql安装目录下的相关路径,因为有空格所以加入了$$quote()

win32:LIBS += -L$$quote(C:/Program Files/MySQL/MySQL Server 5.7/lib) -llibmysqlINCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 5.7/include)DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 5.7/include)

此处以未修改安装位置的路径为例,如果修改了安装路径,请自行修改为对应的路径。

将qsqldriverbase下的qsqldriverbase.pri中的第4行include($$shadowed($$PWD)/qtsqldrivers-config.pri)注释掉,修改为#include($$shadowed($$PWD)/qtsqldrivers-config.pri)(前面加#)
然后在下面加入一行include(./configure.pri)

保存所有后退出
3、按"Win+X"再按A,启动Windows PowerShell (管理员模式)

通过命令行定位到sqldrivers文件夹

cd C:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers

此处以未修改安装位置的路径为例,如果修改了安装路径,请自行修改为对应的路径。

qmake一下

qmake -- MYSQL_INCDIR="C:/Program Files/MySQL/MySQL Server 5.7/include" MYSQL_LIBDIR="C:/Program Files/MySQL/MySQL Server 5.7/lib"

此处以未修改安装位置的路径为例,如果修改了安装路径,请自行修改为对应的路径。

确认MySql…后是yes,再依次输入

mingw32-make
mingw32-make install

会哗啦啦得跑出一大堆东西,别怕,正常的,因为是编译了所有数据库的驱动。
至此,MYSQL的驱动编译就完成了
C:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers下就能看到MYSQL的驱动文件了。
此处以未修改安装位置的路径为例,如果修改了安装路径,请自行修改为对应的路径。

五、测试

//连接数据库QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("127.0.0.1");//localhostdb.setDatabaseName("mysql");db.setUserName("root");db.setPassword("123456");if(db.open()){qDebug()<<"QT successfully connected to MYSQL"<<endl;db.close();}

链接数据库的代码如上,连接成功了打印日志QT successfully connected to MYSQL。
另外记得在.pro里面加入QT += sql


当然这段代码不是直接复制进去就行的啦。小白的话还是建议参考其他的QT连接MYSQL的教程。

完结撒花,再次感谢前辈们的辛勤付出。

参考文档/视频:
https://www.cnblogs.com/dz-study/p/12382837.html
https://zhuanlan.zhihu.com/p/100669223
https://www.bilibili.com/video/BV1Jk4y167tt?from=search&seid=1642261007335545283

【QT日记】QT MYSQL 链接方法 QMYSQL driver not loaded解决方法 qt5.13 mysql5.7相关推荐

  1. Qt QMYSQL driver not loaded 解决办法

    在做开发的时候用到了mysql, 用以下代码测试是否可以用 mysql       qDebug ( ) < < QSqlDatabase : : drivers ( ) ;      q ...

  2. 连接driver not loaded解决方法

    我想你和我一样,照着终于编译好了qt的oracle驱动QOCI,连接成功!!! 一文编译了QOCI,我目前遇到下面错误:(代码我直接用原文的) QSqlDatabase: QOCI driver no ...

  3. Qt C++连接MySQL教程,解决QSqlDatabase:QMySQL driver not loaded

    文章目录 你要做的 背景知识 参考文章 你要做的 首先确定好自己的Qt版本是32位还是64位,MySql是32位还是64位,防止后续操作出现问题,这里我Qt是32位,MySQL是64位,所以我去官网下 ...

  4. Qt MySQL报“QMYSQL driver not loaded driver not loaded“,终极解决办法

    qt连接mysql数据库时,会报QMYSQL driver not loaded,实际原因 1.qt没有安装mysql对应驱动 qt安装mysql驱动 2.qt安装驱动libmyql.dll与qsql ...

  5. linux中QT提示QMYSQL driver not loaded

    如果在Linux系统中使用QT编写的程序提示"QMYSQL driver not loaded",这可能是因为QT缺少相应的MySQL驱动程序.要解决这个问题,你需要安装QT的My ...

  6. VS+QT编译出现QMYSQL driver not loaded

    身为JAVA开发工程师,项目需求开整QT做前端.遇到QMYSQL driver not loaded问题.感觉版本的问题是遇到开发编译过程中最多的.再此做以记录>> 但凡出现:QMYSQL ...

  7. Linux(Ubuntu 19.10)下 Qt5 连接 MySQL(QMYSQL driver not loaded)

    Linux(Ubuntu 19.10)下 Qt5 连接 MySQL 安装好 MySQL 和 Qt Qt 连接 MySQL 的代码 QSqlDatabase d=QSqlDatabase::addDat ...

  8. CMake添加QT库是出现Policy CMP0020 is not set“警告解决方法

    CMake添加QT库是出现"Policy CMP0020 is not set"警告解决方法 查阅官方文档https://cmake.org/cmake/help/v3.0/pol ...

  9. 关于 编译QT项目时报错: error: cannot find -lGL 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/78260169 红胖子(红模仿)的博文大全:开发技术集合 ...

最新文章

  1. linux 读取大量图片 内存,10 张图帮你搞定 TensorFlow 数据读取机制
  2. 使用DDMS抓取安卓APP的奔溃日志
  3. JAVA多线程机制之死锁
  4. useradd -g mysql mysql_Linux —— useradd -g mysql mysql解析及useradd详解
  5. Hibernate——Query查询
  6. Linux解决无法启动网络
  7. 网络编程+Python
  8. linux openh264 编译,在Linux下为Android构建openh264
  9. thinkPHP仿QQ飞车手游模拟抽奖源码
  10. 解决libc.so.6: version `GLIBC_2.14' not found问题
  11. 使用CLion配置第一个FLTK界面
  12. ThinkPHP—URL的访问以及各种方法的操作
  13. iStack详解(二)——堆叠连接方式堆叠拓扑变动处理
  14. Spring设置定时器配置
  15. IDEA给项目添加lib/jar
  16. 改变TMQQ2009版消息提示音
  17. Ecshop二次开发
  18. Python实战:利用Uplift模型识别营销敏感用户提升转化率(一)
  19. SQL语句中,为什么where子句不能使用列别名,而order by却可以?
  20. tomcat 中部署的应用响应json数据乱码解决办法

热门文章

  1. 身份证信息登记,涉及base64和blob二进制之间的转换
  2. 如何通过学校系统漏洞注册到 @edu.cn 邮箱账号?...
  3. CGAL WLOP(加权局部最优投影)简化算法
  4. Github下载慢的解决办法
  5. Collectors常用方法
  6. 解决DevTools failed to load SourceMap Could not load content for .js.map HTTP error code 404 问题
  7. 华为云 DevCloud 部署云服务器
  8. 桌面云组件介绍与安装
  9. 软考高级信息系统项目管理(高项)原创论文——整体管理(2)
  10. 《算法撕裂者》04 - 垃圾收集算法详解