【Windows配置二】Windows下64位 Qt链接MySQL

注:MySQL和qt的编译环境的位数必须一直,我的是64位

一、下载MySQL(免费社区版)

链接:https://dev.mysql.com/downloads/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、配置qt

环境:Qt 5.14.1+MySQL8.0.29(ZIP版)+msvc2017_64编译器
Qt从5.12版本后不在自带MySQL数据库的连接驱动,需要手动编译,编译之前你的先安装MySQL,和安装qt源码。默认你已经安装好了MySQL和安装qt源码。

1. 修改mysql.pro

进入qt安装目录,然后找到Src\qtbase\src\plugins\sqldrivers\mysql,
我的路径为:D:\SoftWare\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql在这里插入图片描述
打开路径下的mysql项目并修改mysql.pro

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
include(../qsqldriverbase.pri)

INCLUDEPATH += "C:/Program Files/MySQL/mysql-8.0.29-winx64/include"   #mysql头文件
LIBS += "C:/Program Files/MySQL/mysql-8.0.29-winx64/lib/libmysql.lib" #mysql库文件
DESTDIR = C:/Users/LZY/Desktop/mydll          # 库生成路径

其中
"C:/Program Files/MySQL/mysql-8.0.29-winx64/include"中的mysql-8.0.29-winx64是将第一步下载的Windows (x86, 64-bit), ZIP Archive解压放入MySQL安装目录下。
在这里插入图片描述
在这里插入图片描述
Windows (x86, 64-bit), ZIP Archive解压如下图
在这里插入图片描述

2. 环境配置

1、按上步修改mysql.pro之后,点击左下角的锤子标志构建项目或者构建—重新构建项目mysql
注意:不需要qmake,只需要构建
在这里插入图片描述

2、构建完成后在第一步设定的路径DESTDIR = C:/Users/LZY/Desktop/mydll # 库生成路径下会生成qt环境搭建的.dll文件,如下图
在这里插入图片描述
复制图片中框出来的库文件到qt安装目录5.14.1\msvc2017_64\plugins\sqldrivers
我的路径为:C:\Qt\Qt5.14.1\5.14.1\msvc2017_64\plugins\sqldrivers
注意:编译时所用的编译器和最后库放的路径要对应起来,例如使用msvc2017_64编译,生成的库也需要放到msvc2017_64路径下的plugins\sqldrivers,使用mingw编译也同理

3、将mysql-8.0.29-winx64(由Windows (x86, 64-bit), ZIP Archive解压得到)目录下的lib下的libmysql.dll和libmysql.lib库文件复制到对应编译器的bin目录下(eg: C:\Qt\Qt5.14.1\5.14.1\msvc2017_64\bin)
在这里插入图片描述
:必须是两个库文件libmysql.dll和libmysql.lib,否则会报如下错误:

QSqlDatabase: QMYSQL driver not loaded

三、验证

创建项目,修改.pro如下:

QT       += core gui
QT       +=sql //加入sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

修改main.cpp如下:

#include <QApplication>
#include <QLabel>
#include <QPushButton>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>
#include <QSqlError>
#include <QDebug>
#include <QSqlDatabase>
#include <QMessageBox>
#include <QTextStream>
#include <stdio.h>

bool createConnection()
{
    qDebug() << "drivers" << QSqlDatabase::drivers();//显示本机已有的数据库驱动
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
//    db.setHostName("127.0.0.1");  //连接本地主机
    db.setHostName("localhost");//默认
    db.setPort(3306);//默认
    db.setDatabaseName("数据库名");//自己创建的数据库名
    db.setUserName("root");//默认
    db.setPassword("密码");//自己创建的密码

    bool ok = db.open();
    if (ok)
    {
        qDebug() << "seccuss" ;
        return  true;
    }
    else
    {
         qDebug() << "no seccess" ;
         return false;
    }
}


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    if (!createConnection())
        return 1;
    test w;
    w.show();
    return a.exec();
}

参考:
http://t.csdn.cn/vnMQC
http://t.csdn.cn/spS8t (32位,注意connect必须是C而不是C++ )
https://www.bilibili.com/video/BV1Jk4y167tt?share_source=copy_web
https://www.bilibili.com/video/BV1mq4y1H73k?share_source=copy_web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值