Qt 6以上版本都试用 连接 MySQL 数据库全流程(CMake 环境)

起因是因为学qt学到数据库操作了,结果报下面的错误:

复制代码
qt.sql.qsqldatabase: QSqlDatabase: QMYSQL driver not loaded
qt.sql.qsqldatabase: available drivers: QSQLITE QMYSQL QODBC QPSQL ...

真的给我整崩溃了,网上大部分都是通过.pro文件去配置,qsqlmysql.dll这个东西,但是这个操作在QT6以上版本来做是非常痛苦的,于是我去github上找方法,去找资源,结果真的找到了,话不多说,上链接!!!

链接(有各种版本的)

地址https://github.com/thecodemonkey86/qt_mysql_driver?utm_source=chatgpt.com

(你必须下你对应的版本,要不然也连接不上,如果上不上去github的留言我发你)

一、环境准备

项目 版本/说明
Qt 版本 6.8.3(你必须下你对应的版本,要不然也连接不上)
编译器 MinGW 13.1.0 64-bit
数据库 MySQL 8.0(或 MariaDB)
CMake ≥ 3.16

二、常见报错原因分析

很多人连不上 MySQL 是因为以下几点:

  1. qsqlmysql.dll 驱动文件缺失或版本不匹配

    Qt 访问 MySQL 时其实是通过一个插件(qsqlmysql.dll)来实现的。

    这个插件必须和你的 Qt 版本、编译器完全对应。

三、放置方法:

这三个文件建议放在:E:\Qt\6.8.3\mingw_64\bin\

(也可以在E:\Qt\6.8.3\mingw_64\plugins\sqldrivers\)这里也放一份。

这两个文件当然就放在自己安装的那个文件夹下,我的地址(E:\QT\6.8.3\mingw_64\plugins\sqldrivers\)要是你没有的话就说明你的source那个没下。

MySQL自己的连接当然也要放,

在自己下的MySQL文件下面找到这两个,复制一份到上面提到的(E:\QT\6.8.3\mingw_64\plugins\sqldrivers\)这个地址下去。

这些配置完了也就差不多成功了,但是如果还是报错,可以把上面提到的所有文件放在:

(G:\code_all\qt\mySql_test\build\Desktop_Qt_6_8_3_MinGW_64_bit-Debug)

这个目录下,这个路径就是你自己创建的工程路径的debug(如果你用的是release(也就是常说的发行版)),就复制到你的发行版下。

四、常见问题总结

问题 原因 解决方案
QMYSQL driver not loaded 驱动文件找不到 把 qsqlmysql.dll 放在 sqldrivers/ 下
QMYSQL driver loaded but connection failed 用户名或密码错误 检查 MySQL 配置
SSL handshake failed 缺少 libssl / libcrypto 拷贝这两个 DLL
Unknown database 数据库不存在 手动创建数据库

五、结语

Qt 连接数据库其实并不复杂,最麻烦的就是"驱动版本匹配"问题。

只要搞清楚 qsqlmysql.dll + libmysql.dll + OpenSSL 三者的对应关系,

一次配置好环境,后续所有项目都能直接使用。

相关推荐
仍然.7 小时前
Redis---缓存
数据库·redis·缓存
Aloudata8 小时前
LookML 语义模型 vs 企业级独立语义层:BI 建模语言能否承担企业语义底座?
数据库·人工智能·数据分析·数据资产·dataagent
细嗅蔷薇@8 小时前
排序和分⻚(order by 、limit)
数据库·oracle
wdfk_prog8 小时前
LWIP教程 09:从 `tcp_slowtmr()` 到 Fast Retransmit——TCP 超时重传与重复 ACK
服务器·网络·数据库·网络协议·tcp/ip
逸模8 小时前
BIM在连锁餐饮装修中的应用:不只是画三维图
大数据·数据库·人工智能·物联网·建模
bug和崩溃我都要8 小时前
QT 开发的专业截图录屏工具 - macOS版 / Windows版
windows·qt·mac·录屏·截屏
梦想平凡8 小时前
棋牌游戏技术实战(五):从对局事件重新执行规则,核对棋盘和最终状态
数据库·游戏·oracle
白露与泡影8 小时前
Oracle AI Database 26ai RAC 部署步骤、关键命令与一键脚本
数据库·人工智能·oracle
天天喝旺仔9 小时前
MySQL 索引原理与慢查询优化实战:从 B+ 树到执行计划调优
数据库·sql·mysql·性能优化
liulilittle9 小时前
Linux 下 select 测试函数
linux·服务器·网络·数据库·c++·select·c