MySQL安装和QT连接MySQL数据库

一、MySQL介绍

MySQL是一种关系型数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

二、MySQL和SQLite有什么区别

SQLite是一款轻量级的关系数据库管理系统,也是开源免费的,用户可以直接读取和写入数据库的文件,非常适合不需要多个用户的小型项目。

MySQL和SQLite虽然都属于关系型数据库管理系统,但它们还是存在较大差异的。MySQL需要服务器才能运行,适合多个用户使用,管理员可以为每个用户分配特定权限,并且多个用户可以同时写入不同的文件,能轻松扩展以满足用户的需求。

而SQLite不需要实际的服务器来运行,应用程序无需与服务器通信到客户端/服务器架构,而是集成到SQLite中。SQLite不能很好地支持多个用户,如果有两个用户同时尝试写入,那么数据库将会被短暂锁定,功能受限。另外,SQLite不能处理一次大量数据,一旦超过最大容量,其性能将会降低。

总的来说,SQLite是为只有一个用户的小型项目设计的轻量级解决方案,而MySQL适用于各种规模的项目并支持多个用户。

三、MySQL下载

官方下载:https://dev.mysql.com/downloads/mysql/

MySQL安装和QT连接MySQL数据库_第1张图片

四、安装

选择Developer Default(开发人员默认值)一直点击next,最后设置数据库密码就行。

MySQL安装和QT连接MySQL数据库_第2张图片

将MySQL的bin添加到环境变量中,使用Developer Default安装,会默认安装在C盘。一般是这个目录:C:\Program Files\MySQL\MySQL Server 8.0\bin;

在终端中输入:mysql -u root -p 回车 然后输入你的之前设置的密码。

MySQL安装和QT连接MySQL数据库_第3张图片

出现mysql> 说明安装成功!

五、QT连接MySQL数据库

1.首先建立一个qt程序,点击.pro文件,添加sql,添加完成编译一下,加载sql的头文件。

MySQL安装和QT连接MySQL数据库_第4张图片

2.查看数据库驱动

#include "mainwindow.h"

#include 
#include 
#include 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    //打印编译器的数据库驱动
    qDebug()<<"数据库驱动:"<
MySQL安装和QT连接MySQL数据库_第5张图片

3.添加mysql数据库驱动,我们需要两个文件:libmysql.lib和qsqlmysql.dll文件

libmysql.lib:在安装的mysql目录文件的lib目录下;

将该文件拷贝到F:\Program\QT\5.14.2\mingw73_64\bin目录下。

qsqlmysql.dll:需要我们进行编译:

(1)打开QT的安装目录的这个路径:QT\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql

MySQL安装和QT连接MySQL数据库_第6张图片

(2)在该目录下新建一个mysqldll的文件夹,然后打开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)
LIBS += "F:\MySQL\MySQL Server 8.0\lib\libmysql.lib" //Mysql的路径
INCLUDEPATH += "F:/MySQL/MySQL Server 8.0/include"
DESTDIR = ..\mysql\mysqldll
MySQL安装和QT连接MySQL数据库_第7张图片

修改qtsqldrivers-config.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
MySQL安装和QT连接MySQL数据库_第8张图片

编译:

在mysqldll文件下生成三个文件,将qsqlmysql.dll和qsqlmysql.dll.debug拷贝到刚刚编译时使用的编译器路径中。

比如刚才我使用的是mingw73_64位的编译器,使用我就拷贝到F:\Program\QT\5.14.2\mingw73_64\plugins\sqldrivers目录下

MySQL安装和QT连接MySQL数据库_第9张图片
MySQL安装和QT连接MySQL数据库_第10张图片

验证:

重新执行test1程序,看到mysql驱动已经添加成功了

MySQL安装和QT连接MySQL数据库_第11张图片

代码连接验证:

#include "mainwindow.h"

#include 
#include 
#include 
#include 
#include 
#include 
#include 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget * w = new QWidget();
    //打印编译器的数据库驱动
    qDebug()<<"数据库驱动:"<
MySQL安装和QT连接MySQL数据库_第12张图片

连接完成!!!

你可能感兴趣的:(mysql,qt,c++)