Qt - 配置MySQL驱动

一、下载并安装mysql

请前往mysql官方网站下载与安装:https://dev.mysql.com/downloads/mysql/

 

二、编译mingw版本

环境介绍:

系统:windows10

Qt版本:QT5.14.2 编译器MingGW64-bit

mysql版本:mysql 5.7.42-winx64

 

1. 拷贝libmysql.dll

1.1 复制mysql/lib内的动态库文件libmysql.dll

拷贝到Qt5.14.2/5.14.2/mingw73_64/bin的文件夹内,这一步是把MySQL的库拷贝到Qt下,让qt可以编译出mysql驱动。

 

2. 编译qsqlmysql.dll

2.1 需要利用QT的源码进行编译,所以QT在安装的时候需要选择source选择来安装源码,安装好之后在QT目录下可以找到Src文件夹,里面就是Qt源码

 

2.2 然后我们找到Qt的mysql源码,源码在Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql目录,找到mysql.pro文件并打开

 

2.3 然后修改mysql.pro文件:

示例1:

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql  #注意要注释掉

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin


# mysql的include路径
INCLUDEPATH += $$quote(E:/mysql-5.7.42-winx64/include)
# mysql的include路径
DEPENDPATH += $$quote(E:/mysql-5.7.42-winx64/include)
# mysql的lib路径
LIBS += -L $$quote(E:/mysql-5.7.42-winx64/lib) -llibmysql

include(../qsqldriverbase.pri)

示例2:

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

#加上MySql路径
INCLUDEPATH += E:/mysql-5.7.36-winx64/include
DEPENDPATH += E:/mysql-5.7.36-winx64/include
win32:LIBS += -LE:/mysql-5.7.36-winx64/lib -llibmysql


OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

 

2.4 最好直接编译,如果出现如下图所示的对话框即为编译成功:

 

2.5 编译成功后在QT的同级目录下,若是默认地址则是在E盘中,会出现plugins的文件夹,这就是我们刚刚编译出来的库文件。

 

 

2.6 打开 sqldrivers 文件夹,可以看到编译出来的库文件qsqlmysql.dll

 

2.7 拷贝库文件qsqlmysql.dll到QT目录中Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers目录下:

最后mysql的驱动即安装成功!

 

3. 添加测试代码

3.1 首先,确保你的.pro文件中包含了对数据库的支持:

QT += sql

其次使用函数查看qt目前支持的驱动:

qDebug()<<"数据库驱动:"<<QSqlDatabase::drivers();//查看QT支持的数据库驱动

运行结果:

 

3.2 测试代码:

#include "widget.h"

#include <QApplication>
#include <QSqlDatabase>
#include <QSqlError>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;

    // 初始化数据库连接
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost"); // 数据库服务器地址
    db.setDatabaseName("test");  // 数据库名
    db.setUserName("root");      // 用户名
    db.setPassword("123456");  // 密码

    // 尝试打开数据库连接
    if (!db.open())
    {
        qDebug() << "数据库连接失败:" << db.lastError().text();
        return -1;
    }
    else
    {
        qDebug() << "数据库连接成功!";
    }

    // 在此处进行数据库操作...

    // 关闭数据库连接
    db.close();

    w.show();
    return a.exec();
}

运行结果:

 

 

三、编译msvc版本

环境介绍:

系统:windows10

vs版本:vs2019

Qt版本:QT5.14.2 编译器msvc

mysql数据库:mysql 5.7.42-winx64

 

注:编译msvc版本的数据库驱动方法

如果想要在vs+qt环境下连接mysql数据库,则需要编译一个msvc版本的数据库驱动,然后放到Qt5.14.2\5.14.2\msvs2017_64\plugins\sqldrivers目录下。

操作方式和编译mingw64的方式差不多。

如下图所示:

 

1. 拷贝libmysql.dll

1.1 复制mysql/lib内的动态库文件libmysql.dll

拷贝到Qt5.14.2/5.14.2/msvs2017_64/bin的文件夹内,这一步是把MySQL的库拷贝到Qt下,让qt可以编译出mysql驱动。

 

2. 编译qsqlmysql.dll

注意:如果说没有msvc构建套件请手动添加。

2.1 qt构建套件的配置,分别有32位和64位的。如果自动检测没有显示构建套件,则可以手动添加一个。

32bit的配置:

 

64bit的配置:

 

2.2 添加msvc2017构建套件后,点击运行,编译出msvc版本的数据库驱动

 

如果编译的时候报了“如果要将多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS” 错误的话 

如果你在使用 Qt 的 QMake 构建系统,可以在项目的 .pro 文件中添加以下代码:

QMAKE_CXXFLAGS += /FS
QMAKE_LFLAGS += /FS

如图所示:

 

2.3 打开 sqldrivers 文件夹,可以看到编译出来的库文件qsqlmysql.dll

3. 拷贝msvc版驱动

3.1 拷贝库文件qsqlmysql.dll到QT目录中Qt5.14.2\5.14.2\msvc2017_64\plugins\sqldrivers目录下:

最后使用vs创建一个qt项目,添加测试代码编译+运行即可。

 

posted @   [BORUTO]  阅读(912)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
点击右上角即可分享
微信分享提示