文档章节

【QTMysql】MySQL安装及QT连接MySQL驱动编译操作步骤

o
 osc_h6vn1kqs
发布于 06/30 15:38
字数 1192
阅读 97
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

MySQL安装

 

1、下载

MySQL官网: https://dev.mysql.com/downloads/mysql/.

下载安装包时,需要根据自身需求选择x86(win32)或win64

在这里插入图片描述

MySQL版本的选择及对应,MySQL 7因为功能齐全,是普遍使用最多的版本,我下载的是mysql-5.7.30-winx64.zip,需要自行初始化安装

MySQL 5.5 MySQL 5
MySQL 5.6 MySQL 6
MySQL 5.7 MySQL 7
MySQL 8.0 MySQL 9

 

2、解压

原始的目录结构下的文件如下所示

在这里插入图片描述
 

3、添加环境变量

将bin目录添加,环境变量->path

在这里插入图片描述
 

4、创建my.ini文件及data文件夹

data文件夹为空,不添加任何东西

在这里插入图片描述

创建my.txt,将.txt改为.ini,修改my.ini文件,加入一下内容

[mysqld]
# 设置服务端口为3306
port=3306
# 设置mysql的安装目录,注意目录需要使用\\连接
basedir=D:\mysql-5.7.30-winx64
# 设置mysql数据库的数据的存放目录,注意目录需要使用\\连接
datadir=D:\mysql-5.7.30-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

 

5、命令提示符初始化MySQL及修改密码

管理员模式打开命令提示符,进入bin目录

在这里插入图片描述

输入 mysqld --initialize --console
初始化MySQL,并将初始化信息打印在控制台
记住初始化的MySQL密码,若后面记不住而出错,可以返回清空data文件夹的内容,再来一次

在这里插入图片描述

输入 mysqld --install mysql5.7-64
安装MySQL,并将其命名为mysql5.7-64,若不命名,默认名称为MySQL

在这里插入图片描述

输入 net start mysql5.7-64
启动mysql服务

在这里插入图片描述

输入 mysql -h localhost -u root -p
打开mysql5.7-64数据库,输入初始化时的密码

在这里插入图片描述

输入 set password for root@localhost = password (‘0820’);
修改mysql5.7-64数据库密码为0820

在这里插入图片描述

输入 quit;
关闭mysql5.7-64数据库

在这里插入图片描述  

6、完成

至此成功安装MySQL

在这里插入图片描述
   
   

QT连接MySQL

 

1、修改 mysql.pro 文件

打开 Qt 的安装目录的 mysql 驱动所在夹,在我这里驱动源码目录在
E:\Qt\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\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) 
 
//MySQL安装路径中的include夹的路径
INCLUDEPATH +="D:/mysql-5.7.30-winx64/include"
//MySQL安装路径中的lib夹下的libmysql.dll库文件
LIBS +="D:/mysql-5.7.30-winx64/lib/libmysql.lib" 
//定义lib生成文件保存位置
DESTDIR = E:/Qt/Qt5.13.1/5.13.1/Src/qtbase/src/plugins/sqldrivers/mysql/mysqllib

 

2、编译 MainGW 版驱动

双击 mysql.pro 让它在 Qt Creator 编译器中打开,选择MinGW 64-bit,点击锤子进行构建

在这里插入图片描述在这里插入图片描述

构建完成后,我们可以在
E:\Qt\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql
目录下查看,构建结果,出现 mysqllib文件夹,到此驱动构建完毕

在这里插入图片描述

打开mysqllib文件夹,下一步将驱动下图的两个 dll 文件复制到,mingw73_64/plugins/ sqldrivers 目录下面,如下图所示。

在这里插入图片描述
在这里插入图片描述

复制 MySQL 安装目录下的库文件(D:\mysql-5.7.30-winx64\lib)中的:libmysql.dll 到 mingw73_64\bin 目录下,复制结果如下图所示。

在这里插入图片描述

在这里插入图片描述
 

3、创建测试项目

使用 Qt Creator 创建Qt Console Application,构建一个项目来测试一些是否可以正常链接数据库,测试代码如下

test.pro文件添加 QT +=sql

main.cpp文件

#include <QtCore>
#include <QtSql>

int main(int argc, char *argv[])
{
    QCoreApplication a( argc , argv);
    //打印支持驱动信息
    qDebug()<<QSqlDatabase::drivers();
    
    //创建 MySQL 数据库
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");     
    //连接数据库
    db.setHostName("localhost");    //数据库服务器 IP
    db.setPort(3306);
    db.setUserName("root");         //数据库用户名
    db.setPassword("0820");         //密码
    db.setDatabaseName("stums");    //使用哪个数据库
    if (!db.open())     
    {         
        qDebug()<<db.lastError().text();     
    }
    else     
    {         
        qDebug()<<"远程数据库连接成功!";     
    }
    return a.exec();
}

然后执行项目,注意此时我们选择的编译组件仍然选择MinGW 64-bit,如下图所示

在这里插入图片描述

点击运行如果得到如下图所示的结果,表示已经完成了 MaingW 版本数据库驱动编译

在这里插入图片描述
 
 

如有不足之处,还望指正 1


  1. 如果对您有帮助可以点赞、收藏、关注,将会是我最大的动力 ↩︎

o
粉丝 0
博文 74
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
6K
18
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
树莓派(Raspberry Pi):完美的家用服务器

自从树莓派发布后,所有在互联网上的网站为此激动人心的设备提供了很多有趣和具有挑战性的使用方法。虽然这些想法都很棒,但树莓派( RPi )最明显却又是最不吸引人的用处是:创建你的完美家用...

异次元
2013/11/09
6.8K
8
5分钟 maven3 快速入门指南

前提条件 你首先需要了解如何在电脑上安装软件。如果你不知道如何做到这一点,请询问你办公室,学校里的人,或花钱找人来解释这个给你。 不建议给Maven的服务邮箱来发邮件寻求支持。 安装Mav...

fanl1982
2014/01/23
1.2W
7
极速博客引擎--Gor

gor 是使用 golang 实现的类Ruhoh静态博客引擎(Ruhoh like),基本兼容ruhoh 1.x规范. 相当于与ruhoh的官方实现(ruby实现), 有以下优点: 速度完胜 -- 编译wendal.net近200篇博客,仅需要1秒 安装...

wendal
2013/01/20
3.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

PPDet:减少Anchor-free目标检测中的标签噪声,小目标检测提升明显

本文转载自AI算法修炼营。 这篇文章收录于BMVC2020,主要的思想是减少anchor-free目标检测中的label噪声,在COCO小目标检测上表现SOTA!性能优于FreeAnchor、CenterNet和FCOS等网络。整体思路...

我爱计算机视觉
昨天
0
0
BIO、NIO、AIO 区别和应用场景

点击上方“ java1234 ”,选择“标星公众号” 优质文章,第一时间送达 66套java从入门到精通实战课程分享...

小锋2
今天
0
0
ContentProvider(查询 插入 修改 删除 )

注意 本篇实在sqlite的基础上编写的所以建议首先了解sqlite 首先建立两个模块 ContentProvider ContentResolver ContentProvider 里面需要建立表和建立连接 所以在这里需要建立DBHelp类 DBHe...

osc_6ttvlt1w
33分钟前
30
0
用这个网站一查,才知道自己被卖了

还记得上个月好多大佬的Twitter账号被盗用于网络诈骗的事件吗。 7月15日,美国前总统奥巴马、“股神”巴菲特、特斯拉CEO马斯克、微软创始人比尔·盖茨等人的账户连续“被登录”,用来向大众诈...

猿大白
今天
11
0
牛客多校第9场E Groundhog Chasing Death

开始以为是什么高深的数论题,后来 重新 推了一下,得到了个这么个式子。 ∏ i = a b ∏ j = c d ( p 1 m i n ( a 1 [ 1 ] i , a 2 [ 1 ] j ) p 2 m i n ( a 1 [ 2 ] i , a 2 [ 2 ] j ) . . ...

osc_wdq5dwoy
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部