qt没有mysql驱动的解决办法
创始人
2024-06-03 17:04:52
0

qt没有mysql驱动的解决办法

  • 第一部分 qtcreator上没有mysql驱动的解决办法
    • 第一步:找到你的qt的版本的源码src
    • 第二步,点击mysql.pro,电脑会自动打开qtcreater,然后就是进行编译器的选择,我选择的是:![在这里插入图片描述](/uploadfile/202406/7eb3dbc8ee280eb.png)
    • 第三步:修改你的mysql.pro
    • 第四步:然后再修改一下sqldriverbase.pri
    • 第五步:构建项目
    • 第六步:
    • 第七步:测试:
    • 参考:
  • 第二部分 vs2019上没有mysql驱动的解决办法
    • 第一步:找到源码:
    • 第二步,点击mysql.pro,电脑会自动打开qtcreater,然后就是进行编译器的选择,我选择的是:msvc2017编译器![在这里插入图片描述](/uploadfile/202406/8eabaa8432386.png)
    • 第三步:修改mysql.pro
    • 第四步:修改qsqldriverbase.pri
    • 第五步:修改msvc-version.conf文件
    • 第六步:编译
    • 第七步:
    • 第八步:测试
    • 参考:

第一部分 qtcreator上没有mysql驱动的解决办法

第一步:找到你的qt的版本的源码src

在源码下找到你的mysql
我的在F:\Qt\5.14.1\qt-everywhere-src-5.14.1\qt-everywhere-src-5.14.1\qtbase\src\plugins\sqldrivers\mysql

你的mysql文件应该在…\qtbase\src\plugins\sqldrivers\mysql,前面的路径是你自己将他放在的位置,后边的应该一致

在这里插入图片描述


第二步,点击mysql.pro,电脑会自动打开qtcreater,然后就是进行编译器的选择,我选择的是:在这里插入图片描述

当你构建成功后,界面是这样的:
在这里插入图片描述


第三步:修改你的mysql.pro

在这里插入图片描述
具体内容:

TARGET = qsqlmysqlHEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp#QMAKE_USE += mysqlINCLUDEPATH += $$quote("C:\Program Files\MySQL\MySQL Server 8.0\include")	#本机mysql的include目录
LIBS += -L$$quote("C:\Program Files\MySQL\MySQL Server 8.0\lib") -lmysql	#本机mysql的lib目录
#注:当你去找的你电脑上的mysql路径时,你会发现大概率你的路径和我的路径是一致的,这应该和mysql的安装方式有关吧!OTHER_FILES += mysql.jsonPLUGIN_CLASS_NAME = QMYSQLDriverPlugin#指定这个文件的绝对地址,具体这个路径的位置你可以看下图"qsqldriverbase.pri的路径"
include(F:\Qt\5.14.1\qt-everywhere-src-5.14.1\qt-everywhere-src-5.14.1\qtbase\src\plugins\sqldrivers\qsqldriverbase.pri)	

qsqldriverbase.pri的路径:其实很好找,就在mysql文件夹的上级目录中
在这里插入图片描述


第四步:然后再修改一下sqldriverbase.pri

在这里插入图片描述
具体内容:

QT  = core core-private sql-private# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)include(./configure.pri)PLUGIN_TYPE = sqldrivers
load(qt_plugin)DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

第五步:构建项目

执行后,F盘下会出现plugins文件夹,进入F:\plugins\sqldrivers中,可以看到qsqlmysql.dll文件;

在这里插入图片描述

那么F:\plugins\sqldrivers怎么找呢?
我的qt环境装在F:
而F:\plugins就生成在你的qt环境的同级目录 或者 qt环境的上级目录中
在这里插入图片描述

第六步:

将F:\plugins\sqldrivers目录下的qsqlmysql.dll文件复制到F:\Qt\5.14.1\mingw73_64\plugins\sqldrivers
在这里插入图片描述

第七步:测试:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QStringList list = QSqlDatabase::drivers();qDebug() << list;//打印支持的sql驱动
}MainWindow::~MainWindow()
{delete ui;
}

我们发现,输出结果中出现了"QMYSQL", “QMYSQL3”,说明:大功告成!
在这里插入图片描述

注:我用的是mingw64位,mingw32位不可用,msvc2017_64也不可用

参考:

Qt缺少Mysq驱动QMYSQL driver not loaded
Windows环境下Qt缺少Mysql驱动的问题解决方案

第二部分 vs2019上没有mysql驱动的解决办法

接下来是讲:msvc2017_64没有mysql驱动怎么办?(与第一部分有少许不同)
在这里插入图片描述

第一步:找到源码:

如果你是做完第一部分,然后再做第二部分,那你就要把操作过的第一部分的源码删掉 ; 如果你是直接看的第二部分,那就不用删,找到你的源码即可
删除重新解压源码,源码的下载地址:qt源码下载

找到源码
在源码下找到你的mysql
我的在F:\Qt\5.14.1\qt-everywhere-src-5.14.1\qt-everywhere-src-5.14.1\qtbase\src\plugins\sqldrivers\mysql

你的mysql文件应该在…\qtbase\src\plugins\sqldrivers\mysql,前面的路径是你自己将他放在的位置,后边的应该一致
在这里插入图片描述


第二步,点击mysql.pro,电脑会自动打开qtcreater,然后就是进行编译器的选择,我选择的是:msvc2017编译器在这里插入图片描述


第三步:修改mysql.pro

TARGET = qsqlmysqlHEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp#QMAKE_USE += mysqlOTHER_FILES += mysql.jsonPLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)#该路径是mysql的头文件路径
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"
#这是MySQL的库文件路径/
LIBS += "C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib"#为了方便查找,不妨增加一条语句,该语句用来指明编译后的结果输出的位置
#所以说,一会编译成功了,我要的文件就在F:\Qt\5.14.1\qt-everywhere-src-5.14.1\qt-everywhere-src-5.14.1\qtbase\src\plugins\sqldrivers\mysql\mysql\lib里面
#你就直接写成一个你知道的路径,一会去那里找就行了(代号:1)
DESTDIR  = ../mysql/lib/

第四步:修改qsqldriverbase.pri

QT  = core core-private sql-private# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)
PLUGIN_TYPE = sqldrivers
load(qt_plugin)DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

第五步:修改msvc-version.conf文件

文件路径:
F:\Qt\5.14.1\msvc2017_64\mkspecs\common\msvc-version.conf

在前面加一句QMAKE_MSC_VER = 1909(对应自己的编译器版本,里面会提示的,我是vs2017):
在这里插入图片描述


第六步:编译

编译成功之后,
找到F:\Qt\5.14.1\qt-everywhere-src-5.14.1\qt-everywhere-src-5.14.1\qtbase\src\plugins\sqldrivers\mysql\mysql\lib
也就是刚才写的(代号:1)那个路径…/mysql/lib/
再说明一下吧,其实就是"我们正在构建的mysql这个项目"路径下的/mysql/lib/

打开如图:
在这里插入图片描述
在这里插入图片描述


第七步:

把qsqlmysql.dll和qsqlmysqld.dll复制到F:\Qt\5.14.1\msvc2017_64\plugins\sqldrivers下,并且把mysql的lib目录下的libmysql.dll复制到F:\Qt\5.14.1\msvc2017_64\bin下就可以运行了。


第八步:测试

#include "DBTest_msvc2017_64.h"
#include 
#include DBTest_msvc2017_64::DBTest_msvc2017_64(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);QStringList list = QSqlDatabase::drivers();qDebug() << list;//打印支持的sql驱动QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setDatabaseName("数据库名称");		// 数据库名称db.setHostName("主机名");			    // 主机名db.setUserName("数据库,用户名");		// 数据库,用户名db.setPassword("数据库,密码");		    // 数据库,密码db.setPort(3306);						// 数据库,端口
}DBTest_msvc2017_64::~DBTest_msvc2017_64()
{}

ok!大工告成!
在这里插入图片描述


参考:

Qt连接MySQL数据驱动(绝对有效)
Qt缺少Mysq驱动QMYSQL driver not loaded

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...