目录
一、概述
一、什么是MySQL
MySQL是一种开源的关系型数据库管理系统(RDBMS)。它是最流行和广泛使用的关系型数据库之一,被许多Web应用程序和软件开发人员用作其后端数据库。
MySQL支持跨多个平台的各种操作系统,包括Linux、Windows和macOS等。它采用客户端-服务器模式,其中MySQL服务器负责存储和管理数据,而客户端应用程序可以通过网络连接到服务器,并执行数据库操作,如查询、插入、更新和删除数据等。
MySQL提供了强大的功能和功能,包括标准的SQL查询语言支持、索引、事务处理、外键约束、触发器、存储过程和视图等。它还具有良好的性能和可扩展性,可以处理大量数据和并发请求。
由于MySQL是开源的,因此它具有良好的社区支持和活跃的开发者社区。此外,MySQL也有商业版本(MySQL Enterprise Edition),提供了额外的高级功能和支持服务。
二、数据库能干什么
数据存储:数据库可以持久地存储大量结构化数据,包括文本、数字、图像、音频和视频等。
数据访问和检索:数据库提供了强大的查询语言,例如SQL,用于快速和有效地检索所需的数据。通过查询,可以从大量数据中提取特定的信息。
数据更新和修改:数据库允许用户对数据进行插入、更新和删除操作,以保持数据的最新状态。
数据安全性和权限管理:数据库允许对数据进行安全控制,通过用户认证和授权机制,只允许授权用户访问特定的数据。
数据一致性和完整性:数据库提供了事务处理机制,确保数据的一致性和完整性。可以在多个操作之间创建事务,以确保数据的正确性。
数据备份和恢复:数据库可以进行定期备份,以防止数据丢失或故障。这样可以在需要时恢复数据,确保数据的可靠性和持久性。
数据共享和协作:数据库可以提供多用户共享数据的能力,多个用户可以同时访问和操作数据库中的数据,促进协作和团队工作。
数据分析和报告:数据库可以支持数据分析和生成报告,通过复杂的查询和聚合操作,可以从数据中提取有用的信息,并生成统计数据和报告。
三、为什么要用数据库,优势、特性?
数据持久性和可靠性:数据库将数据持久地存储在磁盘上,即使在系统故障或断电情况下,数据也不会丢失。数据库还提供了备份和恢复机制,以防止数据丢失。
数据共享和协作:数据库允许多个用户同时访问和操作数据,促进团队协作和数据共享。这使得不同部门或用户可以共享相同的数据集,提高工作效率和协同工作能力。
数据一致性和完整性:数据库提供事务处理机制,确保数据的一致性和完整性。事务可以用于执行一系列操作,并要么全部成功提交,要么全部回滚。这确保了数据的正确性和一致性。
数据安全性和权限管理:数据库提供了安全控制和权限管理机制,只允许授权用户访问特定的数据。通过用户认证和授权策略,可以限制对数据的访问,并保护数据的机密性和完整性。
高效的数据访问和检索:数据库提供了强大的查询语言(如SQL),可以快速和高效地检索所需的数据。数据库还支持索引和优化技术,以提高查询性能和响应时间。
数据的可扩展性:数据库可以处理大量的数据,支持可扩展性和高并发访问。通过水平扩展和集群技术,可以将数据库分割成多个节点,提高处理能力和负载均衡。
数据分析和报告:数据库支持复杂的数据分析和报告生成。通过查询和聚合操作,可以从数据中提取有用的信息,并生成统计数据和可视化报告,帮助决策和业务分析。
支持多种数据模型:数据库支持多种数据模型,如关系型数据库模型、文档数据库模型、键值数据库模型等,根据不同的应用需求选择适合的数据模型。
二、数据库类型
一、关系型数据库 RDBMS
一、概述
关系型数据库是一种使用表格来展示和管理数据的数据库,关系型数据库的核心是数据之间的关系,因此也叫做“关系数据库”。RDBMS可以让用户很容易地使用和管理这些关系
二、特点
便于查询和操作 SQL语句
结构化数据 使用行和列存放数据
数据的一致性和完整性 各种约束条件
并发性 支持多用户连接的隔离性
三、代表产品
MySQL 瑞典MYSQL AB公司开发,现由甲骨文公司管理
PostgreSQL PostgreSQL全球开发组开发的免费的开源的数据库管理系统
二、非关系型数据库
一、概述
NoSQL(Not only SQL)是一种非关系型数据库模型,其数据存储和查询机制与传统的关系型数据库不同
二、特点
非结构化数据 文本、图像、媒体等
分布式存储 分布在多个节点中,实现高并发
没有固定的规范模式 无需定义表和列,不强制要求结构
高可伸缩性 支持水平扩展,增加或删除节点
高性能 高速读写操作,比传统的关系型数据库效率要高
三、代表产品
MongoDB 一款基于文档存储模型的非关系型数据库软件
Redis 一款基于内存存储的非关系型数据库,与MongoDB一样广泛应用于互联网领域, Redis常用于快速读写操作、缓存等场景
三、数据库模型
一、层次性数据库模型
1966年,IBM研究员Codd提出层次结构模型
它的数据结构如同树状结构。每个节点都只有一个父节点,但可以有多个子节点
这种模型存在层次结构复杂、扩展性差、数据操作限制等问题
二、网状型数据库模型
1969年,CODASYL工作组发布了网络模型
它使用复杂链表来表示数据之间的关系,并增加了数据结构的灵活性和递归处理能力,从而解决了层次结构模型的一些问题
解决了层次结构模型的一些问题。但是网络模型需要了解复杂的物理存储结构,对程序设计人员的要求比较高
三、关系型数据库模型
1970年,Codd提出了关系型模型,也就是目前SQL和RDBMS所采用的模型
关系型模型基于二维表格的结构组织数据,每个表格称为关系,每行记录代表一个实体,每列记录代表一个属性。关系之间通过主键和外键进行关联
它具有数据结构简单、数据组织规范、数据操作强大、数据完整性可控等优点,是目前应用最广泛的数据库模型
四、MySQL安装
一、yum安装
yum -y install mariadb mariadb-server
安装成功后可直接登录
修改密码
show databases (展示数据库) 注意 命令输入完成后加上;(表示完整命令)
use MySQL 进入数据库 mysql
show tables 展示数据表
创建root用户使用新的密码
表示有此用户 删除用户后 重新创建新用户
给root用户赋予权限,可以给其他用户赋予权限
刷星配置,保存退出
用户登录验证
二、rpm安装
下载安装包
需连通网络(关闭防火墙、selinux、)
安装软件包![](https://i-blog.csdnimg.cn/blog_migrate/4f649f1d50c72934fd4bca44cfee6aa4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f8133d9efc67b6eb45be1abe575d4d0f.png)
出现错误
解决错误1 解决错误2
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql-server
重新安装
启动服务登录
提示密码错误拒绝访问
解决问题 1 使用户可以临时登录
grep 'temporary password' /var/log/mysqld.log
解决问题2 修改配置文件,跳过验证密码表,登录mysql,修改用户密码
展示数据库
进入数据库
展示数据表
刷新配置
查看用户
树状查看用户
删除用户 创建用户 ,赋予权限,刷新配置,保存退出
修改配置文件,取消跳过密码验证表
重启服务,使用用户密码验证
五、MySQL配置
一、主配置文件
/etc/my.cnf
[mysqld] [mysqld]"表示该段配置是针对MySQL服务器的
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysql-error.log
pid-file=/var/run/mysql/mysql.pid
max_connections=500
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[mysql] [mysql]"中的配置项表示该段配置是针对MySQL客户端的
default-character-set=utf8mb4
拓展配置项
port:MySQL端口号
log_warnings:设置错误日志是否记录警告信息
slow_query_log_file:慢日志文件路径名
long_query_time:当查询时间超过指定的秒数时,会被记录到慢日志中
innodb_buffer_pool_size:InnoDB缓存池大小
join_buffer_size:用于JOIN操作的缓存大小
max_allowed_packet:MySQL允许传输的最大数据包大小
skip_name_resolve:禁用DNS解析
二、数据库目录结构
rpm安装
mysql:存储MySQL的数据文件和表结构定义等。
mysql-files:存放需要MySQL账户权限的文件。
mysql-keyring:存放加密密钥,以供MySQL使用。
mysql.sock:MySQL服务器的Unix套接字文件。
ib_logfile0和ib_logfile1:InnoDB引擎的事务日志文件。
ibdata1:InnoDB引擎的数据文件,包括表数据和索引等。
*.err:MySQL错误日志文件,记录MySQL运行时的错误和警告等信息。
*.pid:MySQL进程ID文件,存储MySQL进程的进程号。