Qt学习笔记(1)——安装MySQL、添加MySQL数据库

1 安装MySQL数据库

参考链接:

https://blog.csdn.net/Running_A/article/details/128413579
https://blog.csdn.net/hitzsf/article/details/126394614
https://blog.csdn.net/m0_67402236/article/details/126012580

1.1 下载MySQL

进入官网:https://www.mysql.com/downloads/
点击MySQL Community(GPL) Downloads
在这里插入图片描述
下载社区版
在这里插入图片描述
点击X86,64bit下载。
在这里插入图片描述
点击No, thanks…直接下载。
在这里插入图片描述
解压到英文目录,并在目录下新建一个 my.ini 文件,中间的内容包括:

[mysqld]
#设置3306端口
port=3306
#设置mysql的安装目录   ----------是你的文件路径-------------
basedir= 自己文件的解压路径(例G:\MySQL\mysql-8.0.33-winx64)
#设置mysql数据库的数据的存放目录  ---------是你的文件路径data文件夹自行创建
#datadir= G:\MySQL\mysql-8.0.33-winx64\data
#允许最大连接数
max_connections=200
#允许连接失败的次数。
max_connect_errors=10
#服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

1.1.1 添加系统变量

为了方便登录操作mysql,在这里我们设置一个全局变量
点击"我的电脑"–>“属性”–>‘‘高级系统设置’’–>‘‘环境变量’’,接下来如下图所操作:
新建系统变量,变量名:mysql,变量值:mysql的解压路径
把新建的mysql变量添加到Path路径变量中,点击确定:
Path,编辑,新建,输入%mysql%\bin,确定。

1.2 安装MySQL

做这一步之前先去解压路径下,把data文件夹删除!!!

1.2.1 使用管理员打开cmd

按下win键再按下空格,输入cmd,右键选择管理员模式打开。
输入:

g: # mysql安装的盘符
cd 解压路径
cd bin
mysqld --install # 安装mysql
mysqld --initialize-insecure --console # mysql初始化,生成不带密码的root账户
net start mysql # 开启mysql服务
mysql -h localhost -u root -p #登录验证

在password后直接回车,如果进入mysql则可以看到“Welcome to the MySQL monitor…”
mysql> 后面,输入:

alter user ‘root’@‘localhost’ identified by ‘root’; #修改密码为root,一定要加“;”才能正常执行
exit # 退出

再次登录:

mysql -h localhost -u root -p
root

新建一个数据库,数据库名为 test_001
mysql> 后面,输入:

create database test_001;

查看数据库:

show databases;

1.3 Win10防护墙通过MySQL的3306端口

进入windows设置,点击更新和安全。
在这里插入图片描述
点击Windows安全,防护墙和网络保护。
在这里插入图片描述
点击高级设置:
在这里插入图片描述
右键入站规则,新建规则:
在这里插入图片描述
规则类型:端口
协议和端口:TCP,特定本地端口:3306
操作:允许连接
配置文件:默认
名称:mysql
在这里插入图片描述

2 QT添加MySQL驱动

qt要先编译mysql的驱动,将dll和lib文件导入编译环境才能正常工作。
我使用的qt版本为5.14.2,MySQL为64位,使用MinGW-64工具编译。

2.1 打开qt内置项目并编译

进入qt安装目录:Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql
在这里插入图片描述
双击pro文件打开工程,选择MinGW-64编译。
修改.pro文件,注释掉QMAKE。
添加INCLUDEPATH, LIBS, DESTDIR,前两个需要找到自己MySQL的解压目录。
请添加图片描述
下面这一步我没做,可能可行。*
请添加图片描述
我直接编译,点击左下角的小锤子。
在这里插入图片描述
生成的plugins有可能会出现在根目录下,如果mysql文件夹内部找不到,就出去找找看。
在这里插入图片描述
在这里插入图片描述

2.2 将编译好的文件和mysql的lib文件复制到qt软件包的不同位置

2.2.1 qt编译生成的dll文件复制到路径1:

路径1:Qt5.14.2/5.14.2/mingw73_64/plugins/sqldrivers
在这里插入图片描述

2.2.2 mysql自带的dll和lib文件复制到路径2:

mysql内的的libmysql.dll和libmysql.lib文件:
在这里插入图片描述
路径2:Qt5.14.2/5.14.2/mingw73_64/bin
在这里插入图片描述

3 Qt工程中添加Mysql

3.1 数据库连接测试

3.1.1 pro文件中添加sql

输入:

QT += sql

在这里插入图片描述

3.1.2 monitor.h添加库

#include <QSqlDatabase>         //mySQL数据库

3.1.3 minitor.cpp 添加代码

//引用
#include <QMessageBox>
#include <QDebug>
#include <QSqlError>

monitor::monitor(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::monitor)
{
    
    
    ui->setupUi(this);

    //sql
    qDebug() << QSqlDatabase::drivers();
    QSqlDatabase database = QSqlDatabase::addDatabase("QMYSQL");	//必须为"QMYSQL"
    database.setHostName("localhost");      //连接本地主机
    database.setPort(3306);
    database.setDatabaseName("test_001");	//之前mysql建立的库名称
    database.setUserName("root");
    database.setPassword("root");			//之前的密码
    bool ok = database.open();
    if(ok){
    
    
        QMessageBox::information(this,"info","link success");
    }
    else{
    
    
        QMessageBox::information(this,"info","link failed");
        qDebug() << "error open database because" << database.lastError().text();
    }
    //sql
}

编译运行结果,如果为以下,则工程验证成功。
在这里插入图片描述

3.2 MySQL操作

3.2.1 新建表

新建名为tabletest的表,元素包括id、name和gender,id为主键,并设置为自动增加。
关键词大小写都可以。

QSqlQuery query;
QString command_create = "create table is not exists tabletest("
							 "id int primary key auto_increment,"
							 "name varchar(20),"
							 "gender char(1)"
						 ");";
query.exec(command_create);

3.2.2 插入数据

由于id会自增,因此只要设置name和gender,在字符串内使用单引号'

QSqlQuery query;
QString command_insert = "insert into test_001.tabletest(name,gender) values('李白','男')";
query.exec(command_insert);

3.2.3 查询数据

如果要使用到qDebug()函数,请声明头文件#include <QDebug>

QSqlQuery query;
QString command_select = "select * from test_001.tabletest";
query.exec(command_select);
while(query.next()){
    
    
	qDebug() << "id:" << query.value(0).toInt();
	qDebug() << "name:" << query.value(1).toString();
	qDebug() << "gender:" << query.value(2).toChar();
}

3.2.4 删除与修改数据

参考:https://blog.csdn.net/qq_45362336/article/details/130578878

4 安装MySQL图形化界面

4.1 安装VC2019支持包

下载链接:https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170
点击x64,下载。
在这里插入图片描述

4.2 安装MySQL界面

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

4.3 登录数据库

点击红框,输入站好和密码就能登录。
在这里插入图片描述

4.4 基本操作

点击SQL+,新建命令脚本,点击闪电,运行脚本。
在这里插入图片描述

4.4.1 创建数据库,创建表,插入和查询数据

create database if not exists `test_001`;			-- 新建数据库
use test_001;										-- 使用数据库
create table if not exists `tabletest`(				-- 创建表
	id int primary key auto_increment,
    name varchar(20),
    gender char(1)
);
insert into test_001.tabletest(name,gender) values('李白','男');	 -- 插入数据
select * from test_001.tabletest;					-- 读取数据

在这里插入图片描述

4.4.2 修改数据

use test_001;
insert into test_001.tabletest(name,gender) values('李清照','男');
update test_001.tabletest set `gender`='女' where (name='李清照');
insert into test_001.tabletest(name,gender) values('佚名','男');
select * from test_001.tabletest;

在这里插入图片描述
注释掉上面的语句,运行:

delete from test_001.tabletest where name='佚名';
select * from test_001.tabletest;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45362336/article/details/130577685