目录
一.数据库概念
一、数据库的基本定义
二、数据库管理系统(DBMS)
三、数据库系统(DBS)
四、数据模型
五、数据库的特点
六、数据库的应用领域
二.MySql
一、开源免费,降低中大型项目成本
二、跨平台与兼容性,适配中大型系统复杂环境
三、高性能与稳定性,支撑中大型系统的高并发需求
四、可扩展性强,满足中大型系统的规模增长
五、丰富的生态与工具链,提升中大型项目效率
六、社区支持与版本迭代,保障长期可用性
三.MYSQL的安装配置(社区版免费)
1. 下载 MySQL 安装包
2. 解压与配置环境变量
3. 初始化配置文件
4. 初始化与安装服务
5. 登录与修改密码
二、Linux 系统(CentOS 7/8)安装配置 MySQL
1. 卸载旧版本(如有)
2. 安装 MySQL
3. 启动服务与设置开机自启
4. 获取临时密码与修改密码
5. 配置远程访问(可选)
三、macOS 系统安装配置 MySQL
1. 下载与安装
2. 启动服务
3. 初始化与修改密码
四、通用配置优化(适合中大型系统)
五、验证安装成功
一.数据库概念
一、数据库的基本定义
数据库(Database,简称 DB)是长期存储在计算机内、有组织的、可共享的大量数据的集合。其数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
例如,学校的学生信息管理系统中,存储学生基本信息、成绩、选课情况等数据的集合就是一个数据库。
二、数据库管理系统(DBMS)
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新及各种数据控制。
常见的 DBMS 有:
- 关系型数据库管理系统:MySQL、Oracle、SQL Server、PostgreSQL 等,它们采用关系模型(二维表)来组织数据。
- 非关系型数据库管理系统(NoSQL):MongoDB(文档型)、Redis(键值型)、Cassandra(列族型)等,适用于处理大规模、高并发的非结构化或半结构化数据。
DBMS 的主要功能包括:
- 数据定义功能:提供数据定义语言(DDL),用于定义数据库的结构,如创建表、修改表结构等。
- 数据操纵功能:提供数据操纵语言(DML),用于对数据进行查询、插入、删除和修改等操作。
- 数据库的运行管理:负责数据库的安全性、完整性、并发控制和恢复等,保证数据库系统的正常运行。
- 数据库的建立和维护功能:包括数据库的初始数据导入、转储、恢复、性能监控等。
三、数据库系统(DBS)
数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA)和用户构成
- 数据库管理员(DBA):负责数据库的规划、设计、维护、监控等工作,确保数据库系统的正常运行和数据安全。
- 应用系统:基于数据库开发的各种应用软件,如电商网站的后台管理系统、银行的交易系统等,通过 DBMS 与数据库进行交互。
四、数据模型
数据模型是对现实世界数据特征的抽象,用于描述数据的结构、数据之间的关系以及对数据的操作等。它是数据库系统的核心和基础。
主要的数据模型有:
- 层次模型:采用树形结构来组织数据,每个节点表示一个实体,节点之间的关系是一对多的。例如,一个公司的部门结构,总部下设多个分部,每个分部又下设多个科室,就可以用层次模型来表示。
- 网状模型:采用网状结构(多对多关系)来组织数据,允许一个节点有多个父节点。适用于表示复杂的多对多关系,如学生与课程的选课关系,一个学生可以选多门课程,一门课程也可以被多个学生选。
- 关系模型:用二维表(关系)来表示数据和数据之间的关系,表中的每行称为一条记录(元组),每列称为一个属性(字段)。关系模型具有结构简单、操作方便等优点,是目前应用最广泛的数据模型。例如,学生表(学号、姓名、年龄、性别)就是一个关系模型。
- 面向对象模型:将现实世界中的实体抽象为对象,每个对象包含属性和方法,对象之间可以通过消息进行通信。它能更好地描述复杂的现实世界实体,适用于多媒体、工程设计等领域。
五、数据库的特点
- 数据结构化:数据库中的数据是按照一定的数据模型进行组织和存储的,具有整体的结构化,而不是零散的、无组织的。
- 数据的共享性高,冗余度低:数据库中的数据可以被多个用户、多个应用程序共享使用,减少了数据的重复存储,降低了数据冗余。
- 数据独立性高:包括物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的;逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
- 数据由 DBMS 统一管理和控制:DBMS 对数据的安全性、完整性、并发控制和恢复等进行统一管理,保证了数据的可靠性和一致性。
六、数据库的应用领域
数据库广泛应用于各个行业和领域:
- 金融领域:银行、证券等机构用于存储客户信息、交易记录等,支持各种金融业务的开展。
- 电商领域:存储商品信息、用户订单、物流信息等,为电商平台的运营和管理提供数据支持。
- 教育领域:管理学生信息、教师信息、教学资源等,辅助学校的教学和管理工作。
- 医疗领域:存储患者病历、诊断记录、药品信息等,便于医生查询和分析患者病情,提高医疗服务质量。
总之,数据库是信息时代数据管理的核心技术,它的发展和应用极大地提高了数据处理的效率和准确性,为各种信息系统的建设提供了坚实的基础。
二.MySql
一、开源免费,降低中大型项目成本
MySQL 是开源数据库(遵循 GPL 协议),企业无需支付高昂的商业授权费用(如 Oracle 的按核心收费模式)。对于中大型项目而言,数据量和并发量增长会伴随服务器规模扩张,开源特性可显著降低长期成本(包括 licensing 费用、定制化开发成本等)。
此外,开源意味着代码透明,企业可根据自身需求修改源码(如优化特定场景的存储引擎逻辑),这对中大型系统的深度定制化需求至关重要。
二、跨平台与兼容性,适配中大型系统复杂环境
中大型系统的部署环境往往复杂(可能涉及 Linux、Unix、Windows 等多操作系统,甚至混合云架构),而 MySQL 具备极强的跨平台性:
- 支持主流操作系统(Linux、Windows、macOS、Solaris 等);
- 兼容多种硬件架构(x86、ARM 等),可适配中大型系统的服务器集群(物理机、虚拟机、容器化部署均可);
- 与主流开发语言(Java、Python、PHP、Go 等)无缝集成,且支持 ODBC、JDBC 等标准接口,便于中大型项目的多语言协同开发。
三、高性能与稳定性,支撑中大型系统的高并发需求
MySQL 经过数十年迭代(尤其是 InnoDB 引擎成熟后),性能已能满足中大型系统的核心需求:
- 存储引擎优化:默认的 InnoDB 引擎支持事务(ACID 特性)、行级锁、聚簇索引,可高效处理高并发写操作(如电商订单提交、金融交易记录);针对读多写少场景,也可选择 MyISAM 引擎(虽不支持事务,但读性能更优)。
- 查询优化:内置优化器可自动优化 SQL 执行计划,支持索引(B + 树、哈希索引等)、分区表(按范围、列表等拆分大表),减少大表查询的 IO 开销。
- 缓存机制:通过 InnoDB 缓冲池(Buffer Pool)缓存热点数据,减少磁盘 IO;支持查询缓存(虽在 8.0 版本移除,但可通过 Redis 等外部缓存补充),提升重复查询效率。
实际案例中,优化后的 MySQL 集群可支撑每秒数万次并发请求(如中小型电商平台的峰值场景),且数据量可达千万至亿级(配合分库分表可扩展至更大规模)。
四、可扩展性强,满足中大型系统的规模增长
中大型系统的核心挑战之一是 “数据量与并发量随业务增长而扩张”,MySQL 通过多种机制支持横向 / 纵向扩展:
- 主从复制与读写分离:1 主多从架构中,主库负责写操作,从库负责读操作,可通过增加从库数量扩展读能力(如电商详情页查询、报表统计等读请求分流到从库)。
- 分库分表:当单表数据量超千万级时,可通过中间件(如 Sharding-JDBC、MyCat)实现分库分表(按用户 ID 哈希、时间范围等规则拆分),将数据分散到多个物理库表,避免单库压力过大。
- 集群方案:支持 MySQL Cluster(基于 NDB 引擎的高可用集群)、MGR(MySQL Group Replication,组复制,支持自动故障转移),提升系统可用性(避免单点故障)。
这些特性使 MySQL 能从 “中小型系统” 平滑过渡到 “中大型系统”,无需彻底更换数据库(降低迁移成本)。
五、丰富的生态与工具链,提升中大型项目效率
中大型项目的开发、运维复杂度高,而 MySQL 的生态系统可显著降低这些成本:
- 开发工具:支持 Navicat、DBeaver 等可视化工具,便于 SQL 编写、数据导入导出;与主流 IDE(如 IntelliJ IDEA、VS Code)集成,提升开发效率。
- 监控与运维:提供 Percona Monitoring and Management(PMM)、MySQL Workbench 等工具,可监控数据库性能(CPU、内存、IO 使用率)、慢查询日志,便于中大型集群的问题排查。
- 云服务支持:主流云厂商(AWS、阿里云、腾讯云等)均提供 MySQL 托管服务(如 RDS for MySQL),支持自动备份、扩容、故障转移,减少中大型项目的运维人力投入。
六、社区支持与版本迭代,保障长期可用性
MySQL 拥有全球最大的开源数据库社区之一,意味着:
- 遇到问题时可快速获取解决方案(如 Stack Overflow、官方文档、社区论坛);
- 版本迭代快(目前最新稳定版为 8.0+),持续优化性能(如 InnoDB 并行查询、向量搜索支持)、安全性(如密码强度增强、审计日志),适配中大型系统的新需求(如 AI 场景下的向量数据存储)。
三.MYSQL的安装配置(社区版免费)
1. 下载 MySQL 安装包
- 访问 MySQL 官方下载页:MySQL Community Server
- 选择对应版本(推荐 8.0 及以上),点击 “Download”,选择 “Windows (x86, 64-bit), ZIP Archive”(免安装版,配置更灵活)。
2. 解压与配置环境变量
- 将下载的 ZIP 包解压到自定义目录(如
D:\mysql-8.0.36-winx64
)。 - 配置环境变量:
- 右键 “此电脑”→“属性”→“高级系统设置”→“环境变量”。
- 在 “系统变量” 中找到 “Path”,点击 “编辑”→“新建”,添加 MySQL 的
bin
目录路径(如D:\mysql-8.0.36-winx64\bin
)。
3. 初始化配置文件
- 在 MySQL 根目录(如
D:\mysql-8.0.36-winx64
)下新建my.ini
配置文件,内容如下:
[mysqld]
# 设置端口号(默认3306)
port=3306
# 设置MySQL安装目录
basedir=D:\mysql-8.0.36-winx64
# 设置数据存储目录(需手动创建data文件夹)
datadir=D:\mysql-8.0.36-winx64\data
# 允许最大连接数
max_connections=200
# 服务端字符集(推荐utf8mb4,支持emoji)
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB
[mysql]
# 客户端字符集
default-character-set=utf8mb4
4. 初始化与安装服务
- 以管理员身份打开命令提示符(CMD):
- 进入 MySQL 的
bin
目录:cd D:\mysql-8.0.36-winx64\bin
- 初始化数据库(生成临时密码,需记录):
mysqld --initialize --console
(注意:临时密码在输出日志中,格式如root@localhost: 临时密码
) - 安装 MySQL 服务:
mysqld --install MySQL80
(“MySQL80” 为服务名,可自定义) - 启动服务:
net start MySQL80
- 进入 MySQL 的
5. 登录与修改密码
- 登录 MySQL:
mysql -u root -p
,输入初始化时的临时密码。 - 修改密码(替换
新密码
为自定义密码):
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
- 退出登录:
exit
二、Linux 系统(CentOS 7/8)安装配置 MySQL
1. 卸载旧版本(如有)
# 检查是否安装过MySQL
rpm -qa | grep mysql
# 卸载(替换包名)
rpm -e --nodeps 包名
# 删除残留文件
rm -rf /var/lib/mysql
2. 安装 MySQL
-
方式 1:通过 YUM 源安装(推荐):
# 下载MySQL YUM源(以8.0为例)
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
# 安装源
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
# 安装MySQL服务
yum install -y mysql-community-server
方式 2:编译安装(适合需要定制化的场景,略复杂,此处不展开)
3. 启动服务与设置开机自启
# 启动服务
systemctl start mysqld
# 查看状态(确认是否启动成功)
systemctl status mysqld
# 设置开机自启
systemctl enable mysqld
4. 获取临时密码与修改密码
- 查看临时密码:
grep 'temporary password' /var/log/mysqld.log
- 登录并修改密码:
# 登录
mysql -u root -p
# 修改密码(需包含大小写字母、数字、特殊字符)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123';
5. 配置远程访问(可选)
- 允许 root 用户远程登录(生产环境建议创建专用用户):
# 切换到mysql库
use mysql;
# 修改root用户的主机限制('%'表示允许所有IP)
update user set host='%' where user='root';
# 刷新权限
flush privileges;
开放防火墙 3306 端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
三、macOS 系统安装配置 MySQL
1. 下载与安装
-
方式 1:通过官方 DMG 包安装:
- 下载地址:MySQL for macOS
- 选择 “macOS 13 (ARM, 64-bit), DMG Archive”(根据系统芯片选择),双击安装,按提示完成步骤(注意记录临时密码)。
-
方式 2:通过 Homebrew 安装(更便捷):
# 安装Homebrew(如未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装MySQL
brew install mysql
2. 启动服务
- DMG 安装:通过 “系统偏好设置”→“MySQL” 启动服务。
- Homebrew 安装:
brew services start mysql
3. 初始化与修改密码
- 登录(Homebrew 安装默认无密码,直接回车):
mysql -u root -p
- 设置密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
四、通用配置优化(适合中大型系统)
在my.ini
(Windows)或my.cnf
(Linux/macOS)中添加以下配置,提升性能:
[mysqld]
# 缓存设置(根据服务器内存调整,如8GB内存可设4G)
innodb_buffer_pool_size=4G
# 并发连接数(根据业务需求调整)
max_connections=1000
# 慢查询日志(记录执行时间>1秒的SQL,便于优化)
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=1
# 关闭DNS反向解析(加速连接)
skip-name-resolve
五、验证安装成功
- 登录 MySQL:
mysql -u root -p
,输入密码后若能进入 MySQL 命令行(显示mysql>
),则安装成功。 - 查看版本:
select version();
通过以上步骤,可完成 MySQL 在不同系统的基础安装与配置。对于中大型系统,建议额外配置主从复制、定期备份(如mysqldump
)和监控工具(如 PMM),确保数据安全与性能稳定。