首页 > 数据库 >最简单的Qt连接MYSQL的方法

最简单的Qt连接MYSQL的方法

时间:2023-08-05 12:44:16浏览次数:93  
标签:Qt MYSQL 编译 编译器 mysql 驱动 连接 qt

最简单的Qt连接MYSQL的方法

⭐ 当我试图在项目中连接本地的mysql时,反复出现:QMYSQL driver not loaded,显示没有成功加载mysql的驱动,在网上查询了很多教程和视频,大多为互相转载且老旧,耗费了大半天还是没有构建成功,通常的解决方法是在本地构建mysql驱动(通过安装qt时勾选的src选项里提供的对应源码构建),但是在编译过程中,有各种各样的bug,参考了很多文章,构建了很多次都没成功,因此有了这篇文章,依托大佬开源的GitHub项目,可以非常简便的连接,避免了很多弯路。

1.报错原因

Qt在某个版本后不在提供编译好的mysql驱动,只在src中提供了驱动源码,使用需要自行编译链接,报错信息如下:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

2.查询版本号

首先需要确定mysql和qt使用的编译器都为32或者64位(必须一致),其次通过qt的安装目录可以确定它的版本(例:D:\QT\5.14.2\mingw73_64,可知qt版本为5.14.2,采用的是mingw64位编译器),记住这个版本。

3.下载对应驱动

进入https://github.com/thecodemonkey86/qt_mysql_driver (这是由大佬提供的编译好的mysql驱动)

进入网页之后,点击右下角的 Releases 进入驱动下载页面。

在这个页面寻找对应自己版本号的驱动,图中红线勾画出的部分,分别为qt版本,编译器版本和编译器位数,需要在页面中找到对应自己版本的压缩包(当前页没有的可以点击下一页继续寻找),并点击下载。

4.添加驱动

下载并解压对应驱动后,会有以下文件。

接下来打开Qt安装目录下的bin文件夹(例:D:\QT\5.14.2\mingw73_64\bin),将libmysql.dll文件复制进该目录。

然后在打开Qt下编译器的plugin文件夹下的sqldrivers文件夹(例:D:\QT\5.14.2\mingw73_64\plugins\sqldrivers),将解压文件中的\debug\sqldrivers\qsqlmysql.dll文件,复制到该目录。

5.编译运行

提供在项目中使用如下代码,编译构建后,可以检验是否连接成功

db = QSqlDatabase::addDatabase("QMYSQL"); //加载mysql驱动

⭐ 注意:如果安装Qt时选择了不止一种编译器套件,在选择构建套件时,需要选择已经放入对应驱动的编译器,点击左下角的Debug可以指定编译器。

这是我的做的一些Qt小练手的项目,都已经在GitHub开源,其中包括和本文相关的链接数据库项目。
https://github.com/wwlww/QT-Small-Projects

标签:Qt,MYSQL,编译,编译器,mysql,驱动,连接,qt
From: https://www.cnblogs.com/wwl1107/p/17607743.html

相关文章

  • Qt5Agg TxAgg和WXAgg的区别
    https://www.oschina.net/question/12_3252 AGG,全名:Anti-GrainGeometry,是一个开源的、高效的2D图形库。AGG的功能与GDI+的功能非常类似,但提供了比GDI+更灵活的编程接口,其产生的图形的质量也非常高,而且它是跨平台的,其宣传可以在非常多的操作系统上运行。主要的功能有:1、支......
  • MySQL之InnoDB存储结构 转载 https://juejin.cn/post/7253816086679846972
    1InnoDB存储引擎InnoDB存储引擎最早由InnobaseOy公司开发(属第三方存储引擎)。从MySQL5.5版本开始作为表的默认存储引擎。该存储引擎是第一个完整支持ACID事务的MySQL存储引擎,特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,非常适合OLTP场景的应用使用。目前也是应用......
  • MySQL查询排序和分页
    连接数据库mysql-hlocalhost-uroot-proot排序查询语法:select字段列表from表名orderby字段1排序方式1,字段3排序方式2,字段3排序方式3,....;ASC:升序(默认值)DESC降序注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。根据年龄对公司......
  • MySQL内存使用排查
    MySQL使用内存上升90%!在运维过程中50%的几率,会碰到这样的问题。算是比较普遍的现象。MySQL内存使用率过高,有诸多原因。普遍原因是使用不当,还有MySQL本身缺陷导致的。到底是哪方面的问题,那就需要一个一个进行排查。下面介绍排查思路:1.参数配置需要确认,内存是否设置合理MySQL内......
  • C#数据库连接配置文件存放至App.Config
    目录使用VisualStudio使用Rider 安装Nuget包获取配置连接数据库使用VisualStudio在需要添加配置文件的类右键-添加-新建项 选择应用配置文件,注意名称有格式要求 使用vs生成的话初始化代码是有的,然后输入的时候是有提示的使用Rider右键需要添加配置文件的项目,Add-File 使用Ri......
  • mysql 命令安装
    1.  mysql 下载安装好压缩文件,下面我们进入正题,少废话。09:39:112023-08-05先到mysql官方网站下载:https://dev.mysql.com/downloads/mysql/ 解压后为这样 执行这个代码mysqld--initialize--console后面出现密码自己保存一下  然后继续安装m......
  • CentOS7 systemctl 管理MySQL服务
    #在/usr/lib/systemd/system/路径下创建mysql.service]#vim/usr/lib/systemd/system/mysql.service[Unit]Description=MySQLserverAfter=syslog.targetnetwork.target[Service]User=mysqlGroup=mysqlType=forkingTimeoutSec=0#PermissionsStartOnly=trueExecStar......
  • VScode+X11支持连接服务器时支持open3d、openCV、matplotlib等可视化
    背景连接服务器以后,想用open3d可视化点云、matplotlib画点图,但是一直不能用,原因也很简单,就是没有配置GUI传输显示,那肯定是要配置X11相关的东西。过程服务器确保服务器下载了xterm、xorg-x11-xauth两个包,不确定可以用dpkg-l加正则表达式查看,应该基本上都有。之后检查/etc/ssh/......
  • QT(4)信号、SLOT和QMap - Addressbook例子2
    在之前的MeeGo开发者(五):QT(3)对象和继承小例子基础上,我们增加三个button,参考http://doc.qt.nokia.com/latest/tutorials-addressbook-part2.html、http://doc.qt.nokia.com/latest/tutorials-addressbook-part3.html和http://doc.qt.nokia.com/latest/tutorials-addressbook-part......
  • MySQL8.0.30在线调整redo log
    测试验证MySQL8.0.30版本带来一个与REDO日志文件有关的新特性:在线调整REDO日志文件的大小,在一定程度上简化了运维的工作量。一台MySQL实例部署完后REDO日志文件大小一般不会保持默认值,DBA会根据数据的写入量以及频率来调整其为合适的值,与业务匹配的REDO日志文件大小能让数据库......