目录
[1.1 什么是数据库?](#1.1 什么是数据库?)
[1.2 DBMS数据库管理系统](#1.2 DBMS数据库管理系统)
[1.3 数据库与文件系统的区别](#1.3 数据库与文件系统的区别)
[1.4 数据库的发展和规划](#1.4 数据库的发展和规划)
[1.5 常见的数据库](#1.5 常见的数据库)
[1.5.1 关系型数据库](#1.5.1 关系型数据库)
[1.5.2 非关系型数据库](#1.5.2 非关系型数据库)
[1.6 DBMS支持的数据模型](#1.6 DBMS支持的数据模型)
[2.1 MySQL的特征](#2.1 MySQL的特征)
[2.3 MySQL环境的安装](#2.3 MySQL环境的安装)
[2.3.1 光盘的插入](#2.3.1 光盘的插入)
[2.3.2 显示光盘文件](#2.3.2 显示光盘文件)
[2.3.3 手动挂载](#2.3.3 手动挂载)
[2.3.4 挂载后再查看](#2.3.4 挂载后再查看)
[2.3.4 进入目录](#2.3.4 进入目录)
[2.3.5 编辑并配置文件](#2.3.5 编辑并配置文件)
[2.3.6 清空yum缓存](#2.3.6 清空yum缓存)
[2.3.7 创建yum缓存仓库](#2.3.7 创建yum缓存仓库)
[2.3.8 查看列表](#2.3.8 查看列表)
[2.4 正式安装MySQL](#2.4 正式安装MySQL)
[2.4.1 创建MySQL文件夹](#2.4.1 创建MySQL文件夹)
[2.4.2 下载](#2.4.2 下载)
[2.4.3 解压tar](#2.4.3 解压tar)
[2.4.4 安装](#2.4.4 安装)
[2.5 部署和启动](#2.5 部署和启动)
[2.5.1 启动服务](#2.5.1 启动服务)
[2.5.2 检查启动状况](#2.5.2 检查启动状况)
[2.5.3 查看日志以获取初始登录密码](#2.5.3 查看日志以获取初始登录密码)
[2.5.4 复制密码保存为首次登陆做准备](#2.5.4 复制密码保存为首次登陆做准备)
[2.5.5 修改登录密码](#2.5.5 修改登录密码)
基础理论
1.1 什么是数据库?
数据:
描述事务的符号记录,包含但不限于数字、文字、图形、图像、语言、声音等。数据有着多重形式,它们都可以经过数字化后存入计算机
数据库:
存放数据的仓库,存储空间很大,数据库并不是随意地存放数据,随意存放不便于数据的查找,是长期存放在计算机内、有组织、可共享的大量数据的集合
数据库中的数据按照一定数据模型组织、描述和存储
数据库特征:
较小的冗余度、较高的独立性和易扩展性
数据要具备结构化特征
数据的冗余度要小,共享度要高,扩充性要强
针对于原子性数据,独立性要强
数据要有统一的管理和控制 ------> 数据库管理系统(DBMS):安全性、完整性、并发性、容灾性
1.2 DBMS数据库管理系统
DBMS是所有数据的知识库,并对数据的存储、安全、一致性、并发操作、恢复和访问 负责
数据库系统成熟的标志就是数据库管理系统的出现
归根结底,DBMS就是一个用于管理数据库的软件,是对数据库完整和统一管理的控制机制
DBMS内的数据字典(有时也称系统表),用于存储每个事物的相关信息,如名称、结构、位置等。而这类数据也成为:元数据
1.3 数据库与文件系统的区别
文件系统:
操作系统用于明确存储设备(通常泛指磁盘),或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统
数据库系统:
DBMS是一种操纵和管理数据库的大型软件。用于建立、使用和维护数据库。对数据库进行统一的管理和控制,以保证数据库的完整性和安全性
相同点:
1、均为数据组织的管理技术
2、均由数据管理软件管理数据,程序与数据之间用存取方法进行转换
3、数据库系统是在文件系统的基础上发展而来的
不同点:
1、管理对象不同 ------> 文件系统的管理对象是文件,并非直接对数据进行管理,不同的数据结构需要使用不同的文件类型进行保存,两者之间存在隔离性
2、存储方式不同 ------> 文件系统使用不同的文件名加以区分(.doc/.mp4/.png),保存在外部存储设备上,数据库系统使用标准统一的数据类型进行数据保存(字母/数字/符号/时间......)
3、调用数据的方式不同 ------> 文件系统使用不同的软件去调用不同类型的文件,数据库系统则统一使用DBMS进行调用和管理
1.4 数据库的发展和规划
分为5个节点:
1 初始阶段------人工管理:人工手动进行数据整理
2 萌芽阶段------文件系统:磁盘文件进行数据的存储
3 初级阶段------第一代数据库:网状模型和层次模型的数据库
4 中级阶段------第二代数据库:关系型数据库&&结构化查询语句 Oracle Mysql SqlServer
5 高级阶段------新一代数据库:NoSql型数据库 Redis..MnGo..
6 未来阶段------云库
1.5 常见的数据库
1.5.1 关系型数据库
关系模型 ------ 二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织
当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、MicrosoftAccess、MySQL、浪潮K-DB、武汉达梦等
实体关系模型 E-R 图,它将真实世界事物与关系的概念,来解释了数据库中抽象的数据框架。实体关系模型利用图形的方式(实体-关系图)来表示数据库的概念设计,有助于设计过程中的构思及沟通讨论
1.5.2 非关系型数据库
普遍定义是"非关联性的",强调Key--value存储和访问
1.6 DBMS支持的数据模型
层次模型
层次模型非常像一个倒置的树形结构
层次模型满足以下条件:
1、有且仅有一个节点且无父节点的,这个节点称为根节点
2、其他的节点,有且只有一个父节点,多应用于桌面型关系模型数据库
网状模型
在现实世界中,事物之间的联系更多的是非层次关系的,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊病
网状模型是一个网络结构,在数据库内如何区分网状模型,需要满足以下条件:
1、允许一个以上的节点无父节点
2、一个节点可以有多于一个的父节点
关系模型
以二维表的形式表示实体和实体之间存在的关系
从模型的三要素角度分析,满足关系模型的条件如下:
1、数据结构:一个二维表格
2、数据操作:数据表的定义 维护 检索 计算
3、数据约束条件:数据表中列的限制
面向对象模型(概念模型)
基于客户的想法和观点所形成的认识和抽象
实体(Entity):客观存在,能够被描述的事物
属性(Attribute):用于描述实体所具有的特征或特性。如针对学生实体 学号 姓名等
关系(Relationship):实体和实体之间的联系
一对一关系 ------> 个人 和 身份证
一对多关系 (多对一关系)------> 班级 和 学生
多对多关系 ------> 学生 和 课程
数据模型(关系概念模型)
行和列:
行表示一个具体的实体的数据,也叫一条记录
列是属性的映射,用于描述实体的
MySQL的安装和部署
2.1 MySQL的特征
1、底层语言使用C、C++编写的,并且使用多种编译器进行测试,以确保源码的可移植性
2、支持市面上所有的操作系统
3、为编程语言提供了API,编程语言包含但不限于:C、C++、C#、Delphi、Eiffel、Java、Perl等
4、支持多线程,充分利用CPU资源,支持多用户访问
5、出色的Sql算法优化,能够更有效的提高查询效率
6、除了常规的安装外,MySQL还能作为嵌入式,嵌入在其他的软件内
7、提供了多语言支持
8、提供了TCP/IP ODBC JDBC等多种数据库连接机制
9、提供用于管理,检查,优化数据库操作的管理工具
10、庞大的算法加持,可以轻松处理千万级别记录的内容
2.2获取方式
四个版本
Alpha版:开发版,公司内部使用
Beta版:体验版,开发完成后,供用户体验
RC版:候选班,正式版发布之前,诞生的小版本
GA版:正式发布版本
MySQL官网:
2.3 MySQL环境的安装
2.3.1 光盘的插入
手动插入
2.3.2 显示光盘文件
df -h
2.3.3 手动挂载
mount -o ro /dev/sr0 /media
注意:需要超级用户才能使用命令
2.3.4 挂载后再查看
df -h
2.3.4 进入目录
cd /etc/yum.repos.d
注意:
初始状态下是没有这两个文件的
2.3.5 编辑并配置文件
vim yum.repo
配置文件:
[BaseOS]
name=baseos yum
enabled=1
baseurl=file:///media/BaseOS
gpgcheck=0
[AppStream]
name=app yum
enabled=1
baseurl=file:///media/AppStream
gpgcheck=0
返回上级目录
cd /
2.3.6 清空yum缓存
yum clean all
2.3.7 创建yum缓存仓库
yum makecache
2.3.8 查看列表
yum repolist
2.4 正式安装MySQL
打开MySQL官网------>下载------>MySQL Community (GPL) Downlodas------>Download Archives 下载档案------>MySQL Community Server MySQL 社区服务器------>MySQL Downloads
2.4.1 创建MySQL文件夹
mkdir mysql
2.4.2 下载
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.34-1.el9.x86_64.rpm-bundle.tar
2.4.3 解压tar
tar xvf mysql-8.0.34-1.el9.x86_64.rpm-bundle.tar
2.4.4 安装
注意:解压后里面有很多文件,只需要选择需要安装的就行了
dnf localinstall mysql-community-server-8.0.34-1.el9.x86_64.rpm mysql-community-client-8.0.34-1.el9.x86_64.rpm mysql-community-common-8.0.34-1.el9.x86_64.rpm mysql-community-icu-data-files-8.0.34-1.el9.x86_64.rpm mysql-community-client-plugins-8.0.34-1.el9.x86_64.rpm mysql-community-libs-8.0.34-1.el9.x86_64.rpm
2.5 部署和启动
2.5.1 启动服务
systemctl start mysql
2.5.2 检查启动状况
systemctl status mysql
2.5.3 查看日志以获取初始登录密码
grep passwd /var/log/mysqld.log
2.5.4 复制密码保存为首次登陆做准备
mysql -uroot -p
......初始密码......
2.5.5 修改登录密码
语法:ALTER USER 'root'@'loaclhost' IDENTIFIED BY '新密码';
新密码可以为(字母+数字+特殊符号)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Openlab123!';