MySQL初识

MySQL初识

🌟🌟hello,各位读者大大们你们好呀🌟🌟

🚀🚀系列专栏:【MySQL的学习】

📝📝本篇内容:安装MySQL;启动MySQL;配置MySQL;登录MySQL;数据库的基本理解;MySQL架构;SQL语句分类;存储引擎

⬆⬆⬆⬆上一篇:Qt的文件

💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.安装MySQL

安装MySQL有很多种方法,有的同学使用的是云服务器,有的用的是虚拟机,我用的就是虚拟机,使用云武器可能还比较麻烦,但是使用虚拟机比想象种方便。我使用的是Ubuntu22.04的版本

更新源列表
sudo apt update

安装最新版MySQL
sudo apt install mysql-community-server

安装就是那么简单

接下来验证是否已经安装成功

第一行命令是看一下MySQL的配置文件是否存在,第二行命令是看一下MySQL的服务器端是否已经存在,第三行命令是看一下MySQL的客户端是否存在,当他们都没问题时,说明安装成功。其中mysqld是需要使用root权限启动的,就像它的路径是sbin即super

2.启动MySQL

上面三条命令都是控制MySQL的启动和停止的,第一条命令显而易见是启动MySQL,第二条命令是重启,第三条命令停止服务器,当然第三条命令和第一条命令可以合并成第二条命令

我们可以通过上面这个方式来验证我们的MySQL已经启动好了,第一个是看有没有对应的守护进程,第二个是看MySQL的一个网络通信端口,默认是3306。

3.配置MySQL

在我们使用的过程中,我们可能会使用到一些中文,需要编码等配置,因此我们需要对MySQL的配置进行修改。

我这边已经改好了,如果需要修改需要使用sudo或者管理员进行修改,添加的内容就是红框框圈出来的两个部分

4.登录MySQL

在其他的系统或者版本中登录可能会有各种问题,可能需要密码还是配置,但是我这个版本可以直接免密登录,遇到让你输密码,就直接回车就行

这是我们现在的登录方式,但是也可以写的更详细

(需要进行配置后才能这样使用)
-h:指明登录部署了mysql服务的主机
-P:指明我们要访问的端口号,默认就是3306
-u:指明要登陆的用户
-p:指明需要输入的密码,不输入也可以,因为后面会有Enter passward让我们输入

①现在我们来聊聊之前得mysqld和mysql,有一点其实是明确的,就是mysqld是数据库的服务器端,mysql是数据库的客户端,因此我们的MySQL本质就是基于C(mysql)和S(mysqld)模式的一种网络服务

②mysql是一套给我提供数据存取服务的网络程序

数据库一般指的是在磁盘或者内存中存储的特定的结构组织的数据->将来在磁盘上存储的一套数据库方案;数据库服务一般指的是mysqld

数据库的本质就是对数据内容存储的一套存储解决方案,给它字段和要求,它会给你结果。之所以不用文件,虽然它也有数据的存储功能,但是文件并没有提供非常好的数据内容管理能力

5.数据库的基本理解

先简单的见一见数据的使用


表的数据逻辑存储如上图,行列组成,然后我们可以去看一下它们在linux上存储的位置,之前在配置文件中有记录

可以看到我们的test数据库在里面,还有一些其他的文件和文件夹,其中深颜色的是文件夹也就是数据库

可以看到我们的test数据库里面是文件

因此我们可以得出以下结论:
①建立数据库,本质就是在Linux下的一个目录
②在数据库内建表,本质就是在Linux下创建对应的文件
③数据库本质也是文件,只不过这些文件不是由程序员直接操作,而是由数据库服务帮我们进行操作,也就是mysqld

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

6.MySQL架构

这是MySQL的体系结构,我们的客户端除了mysql,还有像把数据库接入C++直接使用;连接池的话主要是进行安全验证,授权等登录相关的;接下来的一层可以理解为解析分析MySQL语句,进行语法分析,优化语句等;Pluggable Storage Engines的话就是存储引擎,这里面有好多的存储引擎可以选择,但是比较常用的就是InnoDB,也就是我们之前配置文件中设置的,其次就是MyISAM,别的就用的比较少,而且可以看到图中还有可插拔图标,允许不同的表使用不同的存储引擎,以适应不同的业务场景,"主要干活"的就是这一层;接着就是物理文件和系统层。像我们平时对文件进行处理什么的,也可以比作是数据库操作,因此从操作系统的角度去理解的话,除了最后一层,其余的都是"用户层"。

7.SQL语句分类

DDL【data definition language】 数据定义语言,用来维护存储数据的结构,代表指令: create, drop, alter

DML【data manipulation language】 数据操纵语言,用来对数据进行操作代表指令: insert,delete,update

DML中又单独分了一个DQL,数据查询语言,代表指令: select

DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务,代表指令: grant,revoke,commit

8.存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。

可以通过show engines;来查看有哪些存储引擎可以用,就像前面说的,我们常用的就是InnoDB>MyISAM
🌸🌸MySQL初识大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

相关推荐
IT策士19 小时前
Django 从 0 到 1 打造完整电商平台:电商项目需求分析与数据库设计
数据库·django·需求分析
阳光九叶草LXGZXJ19 小时前
达梦数据库-学习-52-DmDrs参数介绍(Manager模块)
linux·运维·数据库·sql·学习
流年如夢19 小时前
类和对象(上)
android·java·开发语言
MY_TEUCK19 小时前
【2026最新版Linux安装Mysql】CentOS 7 安装 MySQL 8.4.9 完整流程(RPM 手动安装+避坑+面试)
linux·mysql·centos
六月雨滴20 小时前
Oracle 数据库 RMAN 架构与核心概念
数据库·oracle·dba
川石课堂软件测试20 小时前
接口测试常见面试题及答案
python·网络协议·mysql·华为·单元测试·prometheus·harmonyos
用户860225046747220 小时前
从入门到进阶的 React Native 实战指南
android·前端
沐言人生20 小时前
ReactNative 源码分析10——Native View创建流程createView
android·react native
问心无愧051320 小时前
ctf show web入门98
android·前端·笔记