
观众老爷们大家好 这里是邪修KING的独家频道
本文属于系列MySQL ——数据库管理
一起学Linux的小伙伴可订阅专栏: MySQL数据库篇
MySQL 作为当下最流行的开源关系型数据库,是后端开发、运维岗位的必备基础技能。本文将从 Ubuntu 系统下的安装部署入手,带你完成第一个学生信息库的创建与数据操作,再系统梳理数据库核心概念、SQL 分类与内核架构,帮你建立完整的 MySQL 入门认知。
一、Ubuntu 系统下 MySQL 的安装、校验与登录
1.1 检查 MySQL 是否已安装
在 Linux 环境中,我们可以通过which命令快速定位 MySQL 的客户端与服务端程序,判断是否完成安装:
which mysql # 查看MySQL客户端程序路径
which mysqld # 查看MySQL服务端程序路径
如果命令返回了对应的文件路径(例如/bin/mysql、/sbin/mysqld),则说明系统中已经安装了 MySQL。
除此之外,MySQL 服务端默认会监听 3306 端口,我们也可以通过端口监听状态,确认服务是否正常运行:
netstat -anp | grep 3306
正常运行时,会看到 tcp6 协议的 3306 端口处于LISTEN状态,对应的进程正是mysqld。
这里我们先明确两个基础概念:
- mysql:MySQL 的客户端程序,是我们和数据库服务交互的工具
- mysqld:数据库服务的服务器端进程,是真正提供数据存取服务的后台程序 MySQL 本质上就是一套基于 C(客户端 mysql)/S(服务端 mysqld)模式的网络服务。
1.2 普通用户登录 MySQL
安装并启动服务后,我们通过 MySQL 客户端命令登录数据库,基础登录语法为:
mysql -u 用户名 -p
执行命令后终端会提示输入密码,输入正确密码即可进入 MySQL 交互终端。
- -u:指定登录的数据库用户名
- -p:表示使用密码验证,注意-p和密码之间不要加空格;也可以直接写-p密码,但不推荐该写法(密码会明文显示在命令行中)
登录成功后,我们就可以在终端中执行 SQL 语句,完成数据库的各类操作。
二、实战:创建学生信息库与数据操作
我们通过一个学生信息表的简单案例,快速上手数据库的基础增查操作。
2.1 创建并进入数据库
首先创建一个独立的数据库,用来存放学生相关数据:
create database helloworld;
创建完成后,使用use命令切换到目标数据库:
use helloworld;
看到Database changed的提示,就说明已经成功进入该数据库,后续操作都会默认作用在这个库上。
2.2 创建学生数据表
接下来我们创建一张student表,存储学生的姓名、年龄、性别信息:
create table student(
name varchar(32),
age int,
gender varchar(2)
);
语句说明:
- create table:属于 DDL 语句,作用是创建数据表
- name varchar(32):姓名字段,可变长度字符串类型,最长支持 32 个字符
- age int:年龄字段,整数类型
- gender varchar(2):性别字段,可变长度字符串类型
2.3 插入学生数据
使用insert语句向表中插入数据:
insert into student(name,age,gender) values('张三',20,'男');
执行成功后会返回Query OK, 1 row affected,表示一行数据插入完成。我们可以重复执行该语句,插入多条测试数据。
2.4 查询与退出
使用select语句查询表中的全部数据:
select * from student;
其中*代表查询表中所有字段,执行后会以表格形式返回全部学生记录。
操作完成后,输入quit或exit即可退出 MySQL 终端,回到 Linux 命令行。
三、MySQL 核心基础概念全解
很多初学者容易混淆数据库、数据库服务器、表等概念,我们结合图示把这些基础概念梳理清楚。
3.1 服务器、数据库、表的层级关系
很多人会把 “数据库” 和 “数据库服务器” 混为一谈,二者是完全不同的概念:
- 数据库(DB):是在磁盘或内存中存储的、有特定结构组织的数据集合,简单理解就是 “存放数据的仓库”,是一套持久化的数据存储方案。
- 数据库服务器:指安装在机器上的数据库管理系统程序(也就是mysqld进程),它负责管理所有数据库,提供数据增删改查、权限控制、事务保障等能力。

一台 MySQL 服务器(一个mysqld进程)可以管理多个数据库,开发中通常会给每个业务应用创建一个独立的数据库;而一个数据库中又会创建多张数据表,用来对应业务中的不同实体(比如学生表、课程表、成绩表)。
整体层级关系为:客户端 → MySQL服务端 → 数据库 → 数据表。
3.2 为什么不用普通文件存储数据?
有人会提出疑问:普通文件也能存储数据,为什么一定要用数据库? 普通文件确实具备基础的数据存储能力,但从用户和开发者的角度,它缺乏完善、高效的数据管理能力:
3.3 SQL 语言的三大分类
SQL(结构化查询语言)是操作关系型数据库的标准语言,按照功能可以分为三大类:
- create:创建数据库、数据表、索引等
- drop:删除数据库、数据表等
- alter:修改表结构、库属性等
- insert:插入数据
- delete:删除数据
- update:修改数据
其中DQL(Data Query Language,数据查询语言)通常被单独划分出来,专门负责数据查询,核心指令就是select,也是日常开发中最常用的 SQL 语句。
- grant:给用户授予操作权限
- revoke:收回用户的操作权限
- commit:提交事务,持久化数据修改
3.4 存储引擎:MySQL 的底层数据内核
存储引擎是数据库管理系统中,实现数据存储、索引构建、数据更新与查询的底层技术方案。 MySQL 最核心的设计特点就是插件式存储引擎,它支持多种存储引擎,我们可以根据业务场景灵活选择,就像更换零件一样自由切换。
我们可以通过命令查看当前 MySQL 支持的所有存储引擎:
show engines;
返回结果中会展示每个引擎的支持状态、功能说明,以及是否支持事务、XA、保存点等能力。
常见的存储引擎特点:
- InnoDB:MySQL 的默认存储引擎,支持事务、行级锁、外键约束,是最通用的事务型引擎,适合绝大多数业务场景。
- MyISAM:不支持事务,仅支持表级锁,读操作速度快,适合读多写少的非事务场景。
- Memory:数据直接存储在内存中,访问速度极快,但服务重启后数据会丢失,适合做临时表、热点数据缓存。
四、MySQL 内核架构全景解析
我们通过 MySQL 的整体架构图,来理解一条 SQL 语句从客户端发出,到底经历了哪些处理环节。
整个 MySQL Server 从上到下可以分为几个核心层级:
4.1 连接池层(Connection Pool)
这是客户端请求进入 MySQL 的第一层,负责连接处理、身份认证与安全校验。
- 管理客户端的网络连接,验证用户名、密码和主机访问权限
- 负责连接复用、线程管理,避免每次请求都新建连接,提升性能
- 做基础的安全校验,比如权限初判、基础注入检测
4.2 SQL 接口与解析优化层
这一层是 MySQL 的 “处理大脑”,负责 SQL 语句的解析与优化:
4.3 插件式存储引擎层
存储引擎是真正负责数据读写的底层模块,MySQL 通过插件式架构支持 InnoDB、MyISAM、Memory、Archive 等多种引擎。 不同存储引擎的实现逻辑完全不同:有的支持事务,有的不支持;有的数据持久化到磁盘,有的只存在内存中。上层的 SQL 层不关心底层用什么引擎,只需要和存储引擎的标准接口交互即可,这就是插件化架构的灵活性。
4.4 文件系统与日志层
最底层是操作系统的文件系统和各类日志文件:
- File System:数据最终会持久化存储在磁盘文件系统上,比如 Linux 的 ext4、Windows 的 NTFS,也支持 SAN、NAS 等网络存储设备。
- Logs and Files:包含各类日志和数据文件,比如二进制日志 binlog、错误日志、慢查询日志,以及 InnoDB 的 redo 日志、undo 日志,还有数据文件、索引文件等。这些文件保障了数据的持久化、故障恢复和事务安全。
4.5 服务与工具集
除了核心的 SQL 执行链路,MySQL 还提供了一整套管理工具与服务,比如备份恢复、安全管理、主从复制、数据库集群、表分区等功能,支撑数据库的日常运维与高可用部署。
以上就是 MySQL 入门的全部基础内容,从环境安装到实战操作,再到核心概念与内核架构,我们建立了完整的知识框架。后续我们会继续深入学习 SQL 进阶用法、索引原理、事务与锁机制等内容,一步步掌握 MySQL 的核心能力。
最后科普一下数据库分类: 数据库整体可以分为关系型数据库(SQL)、非关系型数据库(NoSQL) 两大体系,同时还有面向专项场景的领域数据库、融合架构的 NewSQL 等类别,下面按分类介绍主流的数据库产品。
一、关系型数据库(SQL 型)
这类数据库基于关系模型设计,以「表 – 行 – 列」的结构化方式存储数据,支持标准 SQL 语言,严格遵循 ACID 事务特性,适合数据结构稳定、要求数据强一致性的业务场景。
二、非关系型数据库(NoSQL 型)
这类数据库不强制要求固定的表结构,支持灵活的数据模型,主打高并发读写、海量数据存储、横向扩展,是对传统关系型数据库的补充,适合数据结构多变、高并发的互联网场景。
1. 键值型数据库(Key-Value)
以「键 – 值」的格式存储数据,读写性能极高,结构最简单。
- Redis:最流行的内存键值数据库,支持字符串、哈希、列表、集合等多种数据结构,性能极强,常用来做缓存、会话存储、排行榜、限流、分布式锁。
- Memcached:轻量级纯内存缓存,功能比 Redis 简单,仅支持字符串键值,多用于简单的热点数据缓存。
2. 文档型数据库
以类 JSON 的文档格式存储数据,结构灵活,支持嵌套数据。
- MongoDB:最主流的文档数据库,使用 BSON(二进制 JSON)存储,无需提前定义表结构,适合数据模型不固定的场景,比如内容管理、社交应用、物联网数据。
3. 列存储数据库
以 “列” 为单位存储数据,适合海量数据的批量写入与查询,主打大数据场景。
- HBase:基于 Hadoop 生态的分布式列存数据库,支持 PB 级数据存储,适合海量日志、用户画像、历史数据归档等大数据场景。
- Cassandra:分布式高可用列存数据库,无单点故障,支持跨区域部署,适合高写入、高可用要求的场景。
4. 图数据库
专门存储「实体与实体之间的关系」,擅长处理关联数据查询。
- Neo4j:最流行的图数据库,原生图存储与图计算,适合社交关系、知识图谱、推荐系统、路径规划等强关联场景。
- NebulaGraph:国产开源高性能图数据库,支持超大规模图数据,适合企业级知识图谱、风控等场景。
三、专项领域数据库
面向特定业务场景设计的垂直领域数据库:
四、NewSQL 分布式关系型数据库
融合了关系型数据库的 SQL 支持、事务 ACID 特性,和 NoSQL 的分布式扩展、高可用能力,解决传统关系型数据库海量数据下的扩容瓶颈。
- TiDB:国产开源 NewSQL,完全兼容 MySQL 语法,支持水平扩展,适合高并发、海量数据的互联网业务。
- Google Spanner:谷歌自研的全球分布式 NewSQL,是分布式数据库的标杆产品。
以上就是本期内容了,感谢各位观看





