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连接
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测试代码:

恭喜你,终于弄好了!喝杯咖啡去~
智能推荐
ORACLE----TimeStamp(时间戳)自动更新
之前对id的自增长进行了设置,原以为时间戳的更新也类似,使用序列之类的,但最终发现跟序列没半毛钱关系。触发器是肯定要用的,但编写脚本也是需要的。 (1)创建触发器 图2中,我们要选择事件(即例子中的INSERT,UPDATE),触发时间(即INSERT,UPDATE事件的前或后,例子中是before),列(例子中为MODIFIED_DATE,为TimeStamp类型),新旧值(为系统默认值OLD和...
LeetCode(剑指offer-tree)-面试题26. 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 例如: 树的遍历方式为:前序遍历 给定的树 A: 给定的树 B: 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。 示例 1: 示例 2: 限制: 题源链接:https://leetcode-cn.com/problems/shu-de-z...
大数据笔记14:Zebra项目分析与实施
第14天——Zebra项目分析与实施 第一部分 Zebra项目概述 一、Zebra项目介绍 二、日志数据结构分析 三、数据以| 分割后,每个数据项的含义 四、Zebra项目整体架构 (一)技术架构 (二)工程架构 五、Zebra业务说明 六、Zebra项目设计思想 第二部分 Zebra项目实施过程 一、创建Maven项目ZebraProject 二、zebra_jobtra...
solr
概述 Solr是基于Lucene(Solr版本基本也是随着Lucene走)开发的一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引,也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果.(网上有个solr教...
猜你喜欢
Paddle2.0-通过DCGAN实现人脸生成
Paddle2.0-通过DCGAN实现人脸图像 本教程将通过一个示例对DCGAN进行介绍。在向其展示许多真实人脸照片(数据集:Celeb-A Face)后,我们将训练一个生成对抗网络(GAN)来产生新人脸。本文将对该实现进行详尽的解释,并阐明此模型的工作方式和原因。并不需要过多专业知识,但是可能需要新手花一些时间来理解的模型训练的实际情况。为了节省时间,请尽量选择GPU进行训练。 1 简介 本项目...
winsocket 和 vmware ubuntu 通信,NAT 非端口映射
一、网络配置 1、NAT 虚拟网络配置 2、选择 NAT 3、查看ip 4、设置 VMnet8 ,ip自设,网关需要一致。 二、程序 1、WinSocketClient 2、LinuxSocketServer ...
Mybatis 注解 @Many 一对多 传递多个参数问题
Mybatis 注解 @Many 一对多 传递多个参数问题 如果@Many调用的方法需要传递空值,那么就不写该参数值。 column 参数写法 :{@Param 名称 = column 字段名 , @Param 名称 = column 字段名 ...}以逗号隔开 示例:方法不重要,重要的是使用方式...
第8章 进程和程序:编写命令解释器sh
进程 在Unix术语中,一个可执行程序是一个机器指令及其数据的序列每一个进程是程序运行时的内存空间和设置。可以用ps命令查看进程。 每个进程都有一个唯一的进程id,所有者,大小以及其他属性 系统进程中的很大一部分是没用终端与之相连的,它们在系统启动时启动,而不是由用户在命令行输入。 内存可以看作是一个容纳内核和进程的空间。Unix中的内存分为系统空间...
Django中的日志logging
文章目录 一、日志logging(创建文件查看日志) 1. 第一步:在项目根目录创建了一个logger.py 2. 第二步:设置日志等级 3. 第三步:输出日志 二、Django日志 1.第一步:settings中配置 2.第二步:日志的使用 ① 视图中:导包 收集日志 ② 收集日志 一、日志logging(创建文件查看日志) python3有logging包,主要用户记录程序运行期间产生的全部日...
