目录
[一, mysql是什么](#一, mysql是什么)
[1.1 核心定位](#1.1 核心定位)
[1.2. 主要用途](#1.2. 主要用途)
[1.3. 核心特点](#1.3. 核心特点)
2.1、关系数据库(代表:MySQL、Oracle、PostgreSQL)
[2.1.1. 核心特点](#2.1.1. 核心特点)
[2.1.2. 适用场景](#2.1.2. 适用场景)
2.2、非关系数据库(NoSQL,代表:MongoDB、Redis、Elasticsearch)
[2.2.1. 核心特点](#2.2.1. 核心特点)
[2.2.2. 适用场景](#2.2.2. 适用场景)
[三, Mysql编译安装](#三, Mysql编译安装)
一, mysql是什么
MySQL 是一款开源的关系型数据库管理系统(RDBMS),是目前全球最流行的数据库之一,核心特点与用途如下:
1.1 核心定位
- 基于「关系模型」(用表、行、列组织数据,通过 SQL 语言操作);
- 主打轻量、高效、易用,同时支持高并发、大数据量场景(通过优化配置可支撑企业级业务)。
1.2. 主要用途
- 网站 / 应用的数据存储:比如电商平台的商品、用户、订单数据,博客的文章、评论数据;
- 数据分析 / 报表:通过 SQL 查询、统计数据;
- 作为后端服务的「数据底座」:配合 Java、Python 等语言开发的程序,实现数据的增删改查。
1.3. 核心特点
- 开源免费:基础版本可免费使用,降低成本;
- 跨平台:支持 Linux、Windows、macOS 等系统;
- 生态丰富:配套工具(如 MySQL Workbench 可视化管理工具)、社区资源多,问题易解决;
- 扩展性强:可通过主从复制、分库分表等方式扩展性能。
关系数据库(RDBMS)和非关系数据库(NoSQL)是两类核心的数据存储系统,核心差异体现在数据模型、适用场景等方面,以下是对比总结:
二,关系数据库与非关系数据库
2.1、关系数据库(代表:MySQL、Oracle、PostgreSQL)
2.1.1. 核心特点
- 数据模型 :用表 - 行 - 列的结构化形式存储,表之间通过「外键」建立关联(比如用户表和订单表通过用户 ID 关联);
- 查询语言:使用标准 SQL(结构化查询语言),语法统一、功能强大(支持复杂查询、事务);
- 强一致性:支持事务(ACID 特性),确保数据操作的原子性、一致性(比如转账操作要么全成,要么全败)。
2.1.2. 适用场景
- 数据结构固定、需要强一致性的场景(比如金融交易、用户账户);
- 需要复杂关联查询的场景(比如多表联合统计)。
2.2、非关系数据库(NoSQL,代表:MongoDB、Redis、Elasticsearch)
2.2.1. 核心特点
- 数据模型 :无固定结构,常见类型包括:
- 文档型(MongoDB):用 JSON/BSON 格式存储(比如一条用户数据是一个包含多字段的文档);
- 键值型(Redis):用 "键 - 值" 对存储(比如缓存用户 Token);
- 列族型(HBase):按列存储大数据量;
- 查询方式:无统一 SQL,用各数据库的专属 API 操作;
- 高扩展性:天然支持分布式存储,能快速扩容以应对海量数据 / 高并发;
- 最终一致性:部分场景牺牲强一致性,换取更高的性能和可用性。
2.2.2. 适用场景
- 数据结构灵活(比如社交平台的动态、电商的商品属性);
- 高并发、海量数据场景(比如 Redis 做缓存、MongoDB 存日志);
- 对查询性能要求极高的场景(比如 Elasticsearch 做全文检索)。
2.3、核心差异对比表
| 维度 | 关系数据库 | 非关系数据库 |
|---|---|---|
| 数据模型 | 结构化表 + 关联 | 文档 / 键值 / 列族等非结构化 |
| 查询语言 | 标准 SQL | 专属 API |
| 一致性 | 强一致性(ACID) | 最终一致性 |
| 扩展性 | 垂直扩容为主(升级硬件) | 水平扩容为主(增加节点) |
| 适用场景 | 事务、复杂关联查询 | 高并发、灵活结构、海量数据 |
简单说:关系数据库适合结构化、强一致 的场景,非关系数据库适合灵活结构、高并发的场景,实际项目中常组合使用(比如 MySQL 存核心业务数据,Redis 做缓存)。
三, Mysql编译安装
准备环境

准备文件
一份 mysql与boost,前者解压到/opt/下

后者解压至

移动到

编辑
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


编辑普通用户管理mysql 及检查

vim /etc/my.cnf 删除原配置项,再重新添加下面内容

设置环境变量,让mysql命令便于系统识别


将 MySQL 的 systemd 服务配置文件复制到系统默认的服务目录中 ,目的是让系统能通过 systemctl 命令(如 systemctl start mysqld)管理 MySQL 服务(启动、停止、开机自启等)。

刷新识别 开机服务 开机自启动 查看端口

给root账号设置密码
