vs2017下qt项目连接数据库 没有“QMYSQL” driver not loaded

2023-12-23 20:59

本文主要是介绍vs2017下qt项目连接数据库 没有“QMYSQL” driver not loaded,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境:visual studio2017 + qt-vasaddin + qt5.14.1 + mysql64位

最近qt项目需要用到vs开发,不多说,来搭建环境。

1.网盘下载地址
链接:https://pan.baidu.com/s/1NuO0oR7eU5M8I46W3Oqsbg
提取码:se2m

注意:
①mysql环境与msvc2017编译器环境保持一致。
mysql32位 配 msvc2017 32位
或 mysql64位 配 msvc2017 64位
我这里选择的是msvc2017-64bit

②qt安装时编译器勾选MSVC2017 64位。Source源码勾选。

2.vs建立了界面应用程序(勾选SQL模块)测试mysql连接

#include <qsqldatabase.h>
#include <qmessagebox.h>
#include <qdebug.h>
#include <qsqlerror.h>int main(int argc, char *argv[])
{QApplication a(argc, argv);/*testMysqlConnection w;w.show();*/qDebug() << QSqlDatabase::drivers();QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");	//添加数据库db.setDatabaseName("test");		//数据库名称db.setHostName("localhost");	//主机名db.setUserName("root");			//用户名db.setPassword("这里写你的数据库密码");			//密码db.setPort(3306);				//端口号if (db.open()){QMessageBox::warning(NULL, QString("Tip"), QString("Successed to open database"), QMessageBox::Yes);return -1;}else {QMessageBox::critical(0, QObject::tr("Failed to open database"), db.lastError().databaseText(), QMessageBox::Cancel);return 0;}//	return a.exec();
}

编译运行
Driver not load!
打印看看调试信息,先设置下项目属性
设置项目属性,打印调试信息main里面加一句代码

	QApplication a(argc, argv);qDebug() << QSqlDatabase::drivers();	//加上这句代码

编译运行:
在这里插入图片描述
好吧,QMYSQL都没有,老老实实编译驱动

2.编译mysql驱动
双击mysql.pro文件QtCreator运行,编译器选择msvc2017 64bit
如我的路径如图:
在这里插入图片描述
编辑mysql.pro文件
在这里插入图片描述
编译ok,将生成路径(mysql/lib)下刚刚生成的驱动文件qsqlmysql.dll及qsqlmysqld.dll
拷贝至msvc2017-64的驱动文件夹,替换原本的驱动,如我的替换路径如下图:

在这里插入图片描述
在这里插入图片描述
继续编译运行vc的测试代码,
在这里插入图片描述
解决方法:
加载驱动,将mysql解压目录lib目录下的libmysql.dll拷贝至msvc2017的bin目录下:
在这里插入图片描述
在这里插入图片描述
重新编译vc测试代码:
在这里插入图片描述

恭喜你,终于弄好了!喝杯咖啡去~

这篇关于vs2017下qt项目连接数据库 没有“QMYSQL” driver not loaded的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529442

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作