文章目录
- 前言
- 一、数据库概念
- 二、数据库管理系统
- 三、数据库系统
- 四、数据库发展史
- 五、关系型数据库
- 六、非关系型数据库(NoSQL)
-
- 1、非关系型数据库介绍
- 2、非关系型数据库的优点
- 3、非关系型数据库的缺点
- [4、对比 Redis 和 Memcached](#4、对比 Redis 和 Memcached)
- 七、关系型数据库和非关系型数据库对比
- 八、编译安装mysql
- 总结
前言
数据库是 IT 领域数据存储与管理的核心,本文从基础概念、两类数据库特性到 MySQL 编译安装实操,系统梳理核心知识,为数据库学习与实践筑牢根基。
一、数据库概念
1、常用知识
LAMP / LNMP 架构
LAMP = Linux + Apache + MySQL/MariaDB + PHP linux apche mysql php
LNMP = Linux + Nginx + MySQL/MariaDB + PHP
数据库的定位
在企业架构中,数据库用于 存储和管理核心数据
示例:
微信:聊天文字、语音、视频、图片
外卖平台(饿了么/美团):订单、支付、商家数据
游戏(绝地求生、王者荣耀):玩家信息、装备、战绩
2、什么是数据
定义:描述客观事物的符号记录(Data),包括数字、文字、图像、声音等。
存储方式:
1、以记录形式存储,统一格式。
2、相同类型的数据存放在一起(如"学生"数据不会和"图书"混在一起)。
数据库的保存形式:
MySQL 服务 → 数据库 → 数据表 → 行(记录) + 列(字段)
3、什么是表
表结构= 行(记录) + 列(字段)
特点:
1、记录由字段组成,字段由字符/数字组成
2、可供不同用户共享
3、具有较小的冗余度和较高的数据独立性
4、数据库是什么
数据库就是 表的集合,是按照一定组织方式存储的 相关数据集合。
二、数据库管理系统
定义:操作和管理数据库的软件。
主要功能:
- 建库与维护(建表、转储与恢复、重组、性能监视)
- 数据定义(数据结构、存储结构、保密模式)
- 数据操作(查询、统计、更新)
- 运行管理(并发控制、存取控制、维护)
- 通信(与其他软件交互,如 Access 和 Office 组件)
三、数据库系统
1、数据库系统流程图

2、数据库系统介绍(DBS)
组成:硬件 + 操作系统 + 数据库 + DBMS + 应用软件 + 用户
DBA(数据库管理员):负责备份恢复、维护、用户管理。
数据库应用软件:Navicat、人事管理系统、财务系统、图书管理等。
DBMS 工作模式:
- 接收请求
- 转换为底层指令
- 执行数据库操作
- 获取结果
- 格式化结果
- 返回给用户
四、数据库发展史
第一阶段(层次型/网状型)
IMS(IBM,1969)
第二阶段(关系型)
1、把数据放在 二维表(行、列)里,而不是像层次型或网状型那样用复杂的指针去连接。
2、用数学集合和关系代数来描述和操作数据(比如选择、投影、连接)。 这样数据就更直观、更容易查询和维护。
意义:
1)现在常见的 PostgreSQL、MySQL、Oracle、SQL Server (微软)都是关系型数据库的后代。
2)关系型数据库的出现,让 SQL(结构化查询语言)成为主流。
第三阶段(新型数据库)
特点:面向对象、开放性、多平台
SQL + NoSQL 混合使用第三代
新兴数据库:MariaDB、PostgreSQL、时序数据库 Promethues
五、关系型数据库
数据模型:E-R 模型(实体-关系)
● 行(记录) = 实体
● 列(字段) = 属性
● 表与表之间存在关系(1对1,1对多,多对多)
主键:唯一、非空,类比学号/身份证号。
常见产品:MySQL、Oracle、SQL Server、DB2、PostgreSQL 等。
六、非关系型数据库(NoSQL)
1、非关系型数据库介绍
定义:Not Only SQL,存储方式不限于表,可存储键值对、文档、列式数据等。
典型产品:Redis、Memcached、MongoDB、HBase。
应用场景:高并发、缓存、大数据实时计算。
2、非关系型数据库的优点
- 格式灵活(Key-Value、文档、图片等)
- 速度快(基于内存存储)
- 高扩展性
- 成本低(开源,部署简单)
3、非关系型数据库的缺点
- 不支持 SQL
- 缺少事务处理
- 复杂查询支持不足
- 大部分数据在内存,成本较高
4、对比 Redis 和 Memcached
相同点:都存储热点数据,内存运行,速度快。
不同点:Redis 支持持久化,数据可落盘;Memcached 纯内存,断电丢失。
七、关系型数据库和非关系型数据库对比

八、编译安装mysql
1、命令和代码块
bash
# 1安装依赖
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
#2上传压缩文件后进行解压。
cd /opt
tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost
#3定制mysql
cd /opt/mysql-5.7.17/
# 写入
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
#4编译和安装
make -j 4 && make install
#5创建普通用户管理mysql
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#6修改配置文件my.cnf
#更改管理主/组
chown mysql:mysql /etc/my.cnf
vim /etc/my.cnf
# 写入文件
[client]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
### 结束
#7设置环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
#8初始化数据库
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
#9启动服务
# 复制 MySQL 的 systemd 服务配置文件到系统默认目录
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload #刷新识别
systemctl start mysqld.service #开启服务
systemctl enable mysqld #开机自启动
netstat -anpt | grep 3306 #查看端口
#10设置root账号和密码并登入
#给root账号设置密码,跳出确认选项-->直接回车
mysqladmin -u root -p password "123456"
#登录
mysql -u root -p123456
2、验证结果
1、依赖安装

2、解压

3、验证mysql编译安装

4、登入mysql

总结
本文全面覆盖数据库概念、系统架构、发展历程及两类数据库差异,结合 MySQL 编译安装实操,助力读者构建完整知识体系,提升数据库应用与运维能力。