news 2026/6/10 17:48:21

Qt ---- Qt6.5.3 连接MySQL数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qt ---- Qt6.5.3 连接MySQL数据库

目录

  • 1,配置mysql数据库驱动
  • 2,编译qsqlmysql驱动
  • 3,连接MySQL数据库

1,配置mysql数据库驱动

Qt连接数据库需要两个驱动程序,也就是两种 .dll .lib文件,首先需要配置mysql数据库本身的驱动程序。

首先我们需要下载mysql数据库,此文章不展示如何下载mysql数据库。
作者将数据库安装在默认的C:盘

然后我们去c盘的路径 C:\Program Files\MySQL\MySQL Server 8.0\lib 中将 libmysql.lib和libmysql.dll 文件拷贝下来。

打开Qt文件夹 找到路径 Qt\6.5.3\mingw_64\plugins\sqldrivers 将刚才复制的 libmysql.lib和libmysql.dll 粘贴在此文件夹下。

然后将 libmysql.lib和libmysql.dll 粘贴到 Qt\6.5.3\mingw_64\bin 下。


2,编译qsqlmysql驱动

Qt连接数据库需要调用 qsqlmysql.dll 驱动程序,然后 qsqlmysql 驱动程序再调用 mysql 驱动实现连接mysql数据库的功能。

但是很多版本的 Qt 都没有 qsqlmysql.dll 的驱动程序,需要程序员手动编译。

首先找到 Qt 安装路径 ,进入 Qt\6.5.3\Src\qtbase\src\plugins\sqldrivers 打开 .cmake.conf 文件。


在文件中添加以下几行 :
SET(FEATURE_sql_mysql ON)
SET(MySQL_INCLUDE_DIR “D:/BuDongPan/MYSQL/include”)
SET(MySQL_LIBRARY “D:/BuDongPan/MYSQL/lib/libmysql.lib” )

其中 D:/BuDongPan/MYSQL/include 和 D:/BuDongPan/MYSQL/lib/libmysql.lib 是从MYSQL数据库相关的文件夹下复制过来的,具体操作就不展示了。

然后用 QtCreator 打开 CMakeLists.txt 文件,选择自己想选择的编译器后,构建项目,就会自动编译了,找到编译的文件夹,文件夹下就已经有了编译好的 qsqlmysql.dll 和 qsqlmysql.debug 文件。
编译文件夹的路径为 : \Qt\6.5.3\Src\qtbase\src\plugins\sqldrivers\build\Desktop_Qt_6_5_3_MinGW_64_bit-Debug\plugins\sqldrivers


将这些文件复制粘贴到 Qt\6.5.3\mingw_64\plugins\sqldrivers 中以及 Qt\Tools\QtCreator\bin\plugins\sqldrivers 中。


3,连接MySQL数据库

在 .pro文件中添加一行代码QT += sql
添加头文件:

#include<QSqlDatabase>#include<QSqlQuery>#include<QDebug>
// 添加MySQL数据库驱动QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
// 配置数据库的用户名,密码,主机名,数据库名,端口号db.setHostName("localhost");db.setPort(3306);db.setDatabaseName("itcast");db.setUserName("root");db.setPassword("2awsdjkl");if(db.open()){qDebug()<<"数据库连接成功";QSqlQueryquery(db);query.exec("SELECT VERSION()");if(query.next()){qDebug()<<"MySQL版本: "<<query.value(0).toString();}}else{qDebug()<<"数据库连接失败: ";// db.lastError().text();}
//可以打印数据库驱动名qDebug()<<"数据库驱动:"<<QSqlDatabase::drivers();

打印结果如下:
数据库驱动: QList(“QSQLITE”, “QMARIADB”, “QMYSQL”, “QODBC”, “QPSQL”)

出现 “QMYSQL” 说明qmysql驱动配置成功。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 15:34:39

58、深入了解Samba:实现Linux与Windows网络文件共享

深入了解Samba:实现Linux与Windows网络文件共享 1. Samba简介 Samba是一个通过实现SMB协议来模拟基于Windows的文件服务器行为的程序。当在Linux服务器上运行Samba时,网络中的Windows计算机就会将该Linux服务器视为Windows服务器。 Samba通过将特定目录指定为共享目录来工…

作者头像 李华
网站建设 2026/6/10 15:32:53

46、Oracle 数据库迁移方法与实践

Oracle 数据库迁移方法与实践 1. 迁移前的准备与规划 在迁移生产系统之前,建议先在测试和开发数据库上进行迁移测试。要详细记录迁移过程,并留意出现的任何问题,这样在实际迁移生产系统时就不会有意外情况发生。 完成数据库、应用程序和实际迁移过程的测试后,就可以进行…

作者头像 李华
网站建设 2026/6/9 21:59:30

52、Oracle iAS与9i Server安装及新特性全解析

Oracle iAS与9i Server安装及新特性全解析 1. Oracle Internet Application Server (iAS) 安装流程 Oracle Internet Application Server (iAS) 是一个功能强大的Web和应用服务器,以下是其详细的安装步骤: 1. 输入数据库相关信息 - 在下一个屏幕中,需要输入用于Oracle…

作者头像 李华
网站建设 2026/6/9 19:55:23

54、Oracle 9i新特性及DBA成长指南

Oracle 9i新特性及DBA成长指南 1. Oracle 9i 中撤销表空间的使用 在Oracle 9i中,如果未设置 UNDO_MANAGEMENT 或将其设置为 MANUAL ,可以正常使用和管理回滚段。但如果决定使用撤销表空间,则需要按以下步骤操作: 1. 创建撤销表空间 :可以在创建数据库时或之后创建…

作者头像 李华
网站建设 2026/6/10 16:26:42

58、数据库管理与运维全解析

数据库管理与运维全解析 一、数据库基础概念 1.1 数据库与实例 数据库和实例是不同的概念,实例由内存结构和后台进程组成,而数据库则包含数据文件、控制文件和在线重做日志等物理文件。数据库的位置通常在特定的目录下,连接数据库可使用连接字符串通过Net8、Server Manag…

作者头像 李华
网站建设 2026/6/10 16:24:49

手把手教你做“离钱近”的产品:拒绝自嗨,从MVP到快速变现!

人们常说&#xff0c;要从事离钱近的事&#xff0c;可究竟什么才算离钱近的事&#xff1f;一开始&#xff0c;我认为离钱近的事&#xff0c;就是即刻付诸行动去赚钱&#xff0c;而非等读完某本书、上完某堂课&#xff0c;或者等大学毕业后才着手去赚钱&#xff0c;而是当下就想…

作者头像 李华