QT 5.9.9 配置使用 MYSQL5.7 数据库

目录

Mysql下载安装

QT 下载安装

编译MYSQL

mingw构建方式

msvc构建方式

QT中MYSQL测试使用


因为版权问题,Qt本身不自带Mysql数据库的驱动,因此如果想要借用Qt操作Mysql数据库,需要手动进行编译。

Mysql下载安装

【Qt】 Mysql服务端安装教程

【Qt】 Mysql 库安装

1,可以选择安装服务端或者安装库文件

2,QT 构件32位版本对应安装 MYSQL 32位. 本文中QT 5.9.9 编译使用  MYSQL 安装5.7(x86)版本 或者 MySQL Connector/C (Archived Versions) 6.1.11(windows x86)

3,服务端x86版本可以从C:\Program Files (x86)\MySQL\MySQL Installer for Windows找到

MySQLInstaller.exe文件(上图)选择ADD按钮进行安装(默认好像是x64版本安装,安装完记得进入看一下版本),也可以从应用卸载打开此界面

QT 下载安装

【Qt】下载与安装_华开发的博客-CSDN博客_qt下载安装

安装组件时勾选 SOURCE 项

编译MYSQL

本机QT 安装目录:D:\QT\QT_5.9

MYSQL客户端 目录 :F:\oracle_client

QTCreator 打开QT源码 mysql.pro 目录:D:\QT\QT_5.9\5.9.9\Src\qtbase\src\plugins\sqldrivers\mysql

QT构建分为mingw 和 msvc 构建时mysql.pro修改不同,根据个人配置选择

QT编译MYSQL

mingw构建方式

参考msvc构建方式 替换成mingw构件

msvc构建方式

修改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

#这个主要是添加.h依赖文件使用
INCLUDEPATH += "C:/Program Files (x86)/MySQL/MySQL Server 5.7/include"
#添加依赖的.lib文件
LIBS += "C:/Program Files (x86)/MySQL/MySQL Server 5.7/lib/libmysql.lib"
#生成DLL文件的存放目录  测试无效果
#DESTDIR = ../mysql/mysqlDll

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

点击重新构建项目

成功后在本机D:\plugins\sqldrivers下会获得

qsqlmysql.dll ,qsqlmysqld.dll 

根据构建套件不同将文件放置不同位置

qsqlmysql.dll ,qsqlmysqld.dll放入

D:\QT\QT_5.9\5.9.9\msvc2015\plugins\sqldrivers

将C:\Program Files (x86)\MySQL\MySQL Server 5.7\lib 内的libmysql.dll,libmysql.lib文件放入

D:\QT\5.9.9\5.9.9\msvc2015\bin

QT中MYSQL测试使用

pro文件中添加

QT +=  sql

使用头文件中添加

#include 
#include 
#include 

显示可用驱动

    //查看所有数据库驱动
    QStringList lists = QSqlDatabase::drivers();

    for(int i = 0 ;i < lists.size(); ++ i)
    {
        qDebug() << lists.at(i);
    }

测试


#include 

#include 
#include 
#include 
#include 
#include 

#include 


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1"); //连接本地主机
    db.setPort(3307);
    //db.setDatabaseName("test");
    db.setUserName("root");
    db.setPassword("1234");
    bool ok = db.open();
    if (ok){
        qDebug() <<"true_mysql:\n" ;
    }
    else {
        qDebug() <<"error_mysql:\n" << db.lastError().text();
    }


    return a.exec();
}

你可能感兴趣的:(MYSQL,数据库,qt,mysql)