1.数据库介绍
1.1 数据是什么?
咱们认为:
账号密码、图片、视频、数据、特殊符号、文字、弹窗
计算机:
二进制数据
1.2 数据如何存储?
账号密码该怎么存储
安全
存储限制
1.3 数据库管理系统(软件)DBMS database management system
wordpress --->帖子,图片,留言,评论,用户密码等
https://db-engines.com/en/ranking 查看数据库种类
RDBMS 关系型数据库 relational
oracle
mysql
mssql
pg
IBM DB2
nosql 非关系型数据库
MongoDB
redis
云数据库RDS PolarDB TDsql
Newsql
TiDB
2.mysql 产品线
2.1 mysql厂家
oracle 官方
MariaDB
Percona
2.2 oracle mysql 企业版本选择
5.6 **** :5.6.36,5.6.38,5.6.46(GA 6-12月)
5.7 ***** :5.7.20,5.7.22,5.7.26,5.7.28 双数版
8.0 ** 8.0.11以后的版本 8.0.17,8.0.18
C:社区版,开源
E:企业版,收费
mysql.com 官网下载
2.3 Mysql各种安装方式(Linux)
通用二进制版:解压即用
rpm,yum版本:下载rpm包或者配置yum源 (自己研究)
APT是Ubuntu使用
源码包 :编译安装 (自己研究)
编译安装,需要研究源码时用这种安装
3. 安装mysql 5.7.28二进制包
3.1 环境准备
(1)准备centos 7.6虚拟机
ip:10.0.0.51/24 hostname:db01(自己定制的)
(2)清理历史环境
rpm -qa |grep mariadb
yum remove mariadb -libs -y
进行删除
(3)创建用户和组
useradd mysql -s /sbin/nologin
id mysql
(4)创建相关目录
创建软件目录 国际标准是/user/local/
mkdir -p /app/database/
创建数据目录(挂接到磁盘)
mkdir -p /dada/3306/
创建日志目录
mkdir -p /binlog/3306/
软件一个磁盘,数据一个磁盘,日志一个磁盘
(5)设置权限
chown -R mysql.mysql /app/ /data/ /binlog
3.2 上传并解压mysql软件
使用xftp上传
cd /app/database
ll
3.3 设置环境变量
bin目录下放mysql所有执行程序,比如一些命令
support-files 放的一些脚本
这两个常用
vim /etc/profile
#添加一行:
export PATH=/app/database/mysql/bin:$PATH #告诉系统找mysql命令时去这里找
#生效配置
source /etc/profile
#验证
mysql -V
3.4 初始化系统
mysql --initialize -insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
#报错
#解决
安装一个软件包
#再次运行
mysql --initialize -insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
容易报错的
删除3306下的所有文件
#扩展
5.7版本初始化方式
(1)mysqld --initialize
1.初始化完成后,会有12位临时密码,但是必须在使用mysql之前重置这个密码
2.密码管理使用严格模式:3种密码复杂度
(2)mysqld --initialize-insecure
5.6版本初始化方式
/app/database/mysql/scripts/mysql_install_db --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
如果是yum安装,会做自动初始化
3.5 配置文件设置
cat >/etc/my.chf <<EOF
[mysqld]
user=mysql
basedir=/app/database/mysql
datadri=/dada/3306
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
3.6 准备mysql的启动脚本
#拷贝mysql的启动脚本至系统软件管理目录中
centos6 启动
service mysqld start
centos7 启动
chkconfig --add mysqld
systemctl start mysqld
修改初始密码
4.mysql体系结构及基础管理
C/S工作
ssh连接
本地连接SSH
mysql类似ssh,也是可以本地连接,或通过客户端连接
4.1 mysql 客户端/服务器工作模型(C/S)
(1)本地socket 链接方式:
mysql -S /tmp/mysql.sock
说明:只能在本地使用,不依赖于IP和端口
(2)远程TCPIP链接方式
mysql -uroot -p123 -h 10.0.0.51 -p 3306 通过这个连接串在本地模拟远程登录
4.2 服务器端:实例(server端)
关掉office之后从内存释放了
office即开即用,mysqld进程一直是守护运行的
不关永远在内存中运行
守护运行,启动时就分配好的预分配内存,其他程序无法共享使用,独占
有很多线程
实例:mysqld+工作线程+预分配的内存结构
功能:管理数据
公司:boss+员工+办公室
4.3 mysqld的程序结构
最核心的mysqld 启动之后就有了实例
多伽一个,开一个线程
4.4 Mysql的逻辑结构(操作对象)
逻辑 -->抽象
show tables
desc user
4.5 Mysql的物理存储结构
段:一个表就是一个段,可以由一个或者多个区构成
区:一个区(簇),默认1M,连续的64个pages
页:一个页,默认16KB,连续的4个OS block,最小的IO单元