首页 > 数据库 >Qt配置Mysql环境(Mingw版本)

Qt配置Mysql环境(Mingw版本)

时间:2024-09-03 15:25:40浏览次数:13  
标签:文件 Qt mysql Mysql 点击 文件夹 Mingw MySQL

前言

之所以写这篇文章,是由于本人被这个环境配置搞得心态搞炸了,网上的教程层出不穷,我也坚信很多还没有配置出来的小伙伴一定是照着有些教程一步一步来的,但就是死活不行,别人就行,自己的就不行。

不说废话了,直接上教程。
首先要确定你的Mysql和你的Mingw的位数是对的上的,要是32都是32,要是64都是64

第一步:

前面几步和大多数博主所教的一样。
首先找到自己Qt目录下的mysql文件夹(最好把路径复制下来,便于找到这个文件夹),然后用Qt Creater打开这个文件夹
Alt​​

第二步:

打开之后点击项目,把这个shadow build给关闭了(第一张图是我配置好之后截取的,所以路径可能和第二张图有点对不上)
Alt
​​Alt

第三步:

点击mysql.pro文件,应该是这样的
Alt

第四步:

注释掉
Alt
到此为止,上面操作应该和绝大多数教程一样,可能别的教程没有关闭shadow build这一步,无所谓。下面就是要导入外部库的路径了,其实我觉得大多数人错也就是错在这一步,我觉得不要自己去写外部库的路径。网上的路径写法一大推,我随便举几个例子:

#使用反斜杠,仅适用于Windows平台,其它平台可能会出错
LIBS += “E:\MySQL\MySQL _Server_8.0\lib\libmysql”
LIBS += “E:/MySQL/MySQL _Server_8.0/lib/libmysql”
#不使用引号,当路径中出现空格时可能会出错
LIBS += E:\MySQL\MySQL _Server_8.0\lib\libmysql
LIBS += E:/MySQL/MySQL _Server_8.0/lib/libmysql
#还有使用L和l的,L指代路径,l指代库名
-L"E:/MySQL/MySQL _Server_8.0/lib" -llibmysql

等等等等,网上教程写的五花八门

Qt Creater提供了导入外部库的操作,为什么我们非要自己写呢?

第五步:

右键项目,点击添加库
Alt
选择外部库
Alt
然后点击下一步

第六步:

取消勾选平台下的LinuxMac
Alt

第七步:

点击库文件这一行所对应的浏览,选中自己mysql(不是Qt中的mysql文件夹)中的libmysql.lib文件,打开
Alt

第八步:

添加你的mysql所对应的include目录,然后可以得到
Alt

第九步:

将Windows下的为debug版本添加‘d’作为后缀取消勾选,然后点击下一步
Alt
点击完成,就会自动添加如下代码,我这是相对路径,不过没事,只要编译文件的时候它能找到这个库文件就行
Alt

第十步:

也可以在添加上DESTDIR = path,这样就可以指定你的库文件生成的路径,不加也行。
到这里pro文件搞好了,点击qsqldriverbase.pri文件,初次进去应该如下
Alt

将include($$shadowed($$PWD)/qtsqldrivers-config.pri)注释,添加include(./configure.pri)

第十一步:

这样文件应该是改好了,选择release点击编译,也就是小锤子
Alt
这时就会看到和自己Qt同级文件夹下生成了一个plugins文件夹
Alt

第十二步:

点开就会发现
Alt

第十三步:

将这三个文件复制到自己Qt下的sqldrivers文件夹下,这里我已经添加过了
Alt

第十四步:

打开自己的mysql文件夹,将这两个文件复制到Qt的mingw的bin目录下
Alt
复制完成后如下
Alt

测试:

这样所有配置就完成了,可以测试一下,新建工程在工程pro文件中添加
Alt
在main文件中写入

#include <QApplication>
#include <QDebug>
#include <QSqlDatabase>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //MainWindow w;

    qDebug() << QString("支持的驱动:");
    QStringList drivers = QSqlDatabase::drivers();
    foreach (QString driver, drivers) {
        qDebug()<<driver;
    }
    return a.exec();
}

运行结果
Alt

到这里就完结,撒花。

标签:文件,Qt,mysql,Mysql,点击,文件夹,Mingw,MySQL
From: https://blog.csdn.net/m0_71489826/article/details/141861360

相关文章

  • 20240903_162154 mysql 填空题 分组与聚合
    查询tb表所有数据,结果按age升序排select*fromtborderbyageasc查询tb表所有数据,结果按score降序排序select*fromtborderbyscoredesc查询tb表所有数据,结果按age升序排,如果age相同的数据,按score降序排select*fromtborderbyageasc,scoredesc查询sanguo表,......
  • Linux下MySQL5.7安装步骤
    1、更新软件包列表apt-getupdate2、查看系统默认安装的数据库版本apt-cachepolicymysql-server3、需要安装mysql5.7的版本就需要换源养成习惯,先备份文件:cp/etc/apt/sources.list/etc/apt/sources.list.back然后更换apt源:修改sources.list文件vim/etc/apt/sour......
  • Learn OpenGL In Qt之系列简介
    竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生~个人主页:rainInSunny | 个人专栏:C++那些事儿、LearnOpenGLInQt文章目录传送门写在前面为什么是OpenGL和Qt能学到什么能做点什么国漫女神炫酷进度冷酷机器人传送门LearnOpenGLInQt之系列简介LearnOpe......
  • 在本地通过Docker安装MySQL并配置持久化
    看前须知这里使用Mac下的OrbStack代替Docker,都是命令行操作,除了可能出现的UI不同外没有任何区别。拉取镜像由于是Mac环境,所以优先使用arm64结构,关于是否支持所需架构,可以在DockerHub上查,一般支持的都会写明。这里搜索MySQL,进入官方镜像就可以在Overview的Quickreference(co......
  • 20240903_120652 mysql 填空题 dql简单查
    查询tb表的所有数据select*fromtb查询student表的全部数据,只显示id与name列selectid,namefromstudent查询student表的全部数据,只显示id与name列,给id列起别名为学号,给name列起别名为姓名selectidas学号,nameas姓名fromstudent查询student表中的学生都来自哪个城......
  • mysql 索引
    最左匹配原则CREATEINDEXidx_age_classid_nameONstudent(age,classId,name);showindexfromstudent;--1【索引部分生效】--索引部分生效agekey=idx_age_classid_name,key_len=5(int4字节+额外1字节标记空null)EXPLAINSELECTSQL_NO_CACHE*FROMstudentWHERE......
  • 程序员开发必备MySQL数据可视化视图工具Navicat Premium Lite 精简版安装教程
    程序员开发必备MySQL数据可视化视图工具NavicatPremiumLite精简版使用:https://blog.csdn.net/jky_yihuangxing/article/details/141854667文章目录1.软件官方下载地址2.软件介绍3.下载安装步骤1.软件官方下载地址https://www.navicat.com.cn/products#navi......
  • uniapp手机端和html中使用mqtt
    最近的项目用到了mqtt,我想了想,还是记下来吧,毕竟我也废了很长的时间在这个上面,首先是uniapp中使用mqtt,查阅了一些资料,前辈们都说使用3.0.0版本,于是我就下载了3.0.0版本的来使用[email protected]在mqtt连接之前要先引入importmqttfrom'mqtt/dist/mqtt.js';......
  • 20240903_110652 mysql 填空题 dml
    全列添加,往student表(id,name,age)添加数据,id自增长,name值为'tom',age值为6insertintostudentvalues(null,'tom',6)限定列的添加,往student表(id,name,age)添加数据,不管id,name值为'tom',age值为6insertintostudent(name,age)values('tom',6)添加多条数据,往stude......
  • pycharm中应用PPOCRLabelv2时遇到的Qt bug:This application failed to start because
    bug提示如上所示:ThisapplicationfailedtostartbecausenoQtplatformplugincouldbeinitialized.Reinstallingtheapplicationmayfixthisproblem.尝试一:https://www.cnblogs.com/hywing/p/18240487(安装Qt过程可参考,但debug无果)尝试二:https://blog.csdn.net/m0_......