**数据库产品介绍 **
5.1 什么是数据?
人类认为的数据: 抽象出来的,图片,视频,文字,表格,数字.
计算机: 2进制,16机制.
5.2 DBMS 数据库管理系统
RDBMS: 关系型数据库管理系统
特点: 二维表结构,提供很丰富的查询功能.高一致性.性能相比较差.
NoSQL:
特点: 无结构化存储数据,性能较高
NewSQL:
PinCAP TiDB
Aliyun PolarDB + OB
Tencent TDSQL
5.3 面试题
(1) 笔试: 介绍你了解过的数据库产品?
RDBMS: MySQL , Oracle ,MSSQL,PG
NOSQL: Redis, Memcached, MongoDB,ES
NewSQL: TiDB , PolarDB ,TDSQL
(2) 面试: 你们公司都用了哪些数据库产品?
运维:
MySQL 或者 RDS
DBA:
MySQL , Redis ,MongoDB, ES,Oracle
**MySQL 企业版本选择 **
6.1 Oracle MySQL产品线
E : 企业版 , 收费的.
C : 社区版 , 开源的.
6.2 社区版 版本类型
DMR,RC : 测试开发版.
GA : 稳定发布版.
6.3 企业版本选择
5.5 : 7-8%
5.6 : 50% : 5.6.3x : 5.6.34 -5.6.42 尽量选择双数版
5.7 : 40% : 5.7.2x : 5.7.20 -5.7.26
8.0 : 2-3% : 8.0.11+ 才是正式版, 8.0.17以上更好.
5.6.38 5.7.20 发行日期:2017-9-13
6.4 MySQL软件获取
https://downloads.mysql.com/archives/community/
6.5 同源产品
Oracle MySQL : 5.0 5.1 5.5 5.6 5.7 8.0 9.0
MariaDB : 5.0 5.1 5.5 10.x ....
Percona : 5.0 5.1 5.5 5.6 5.7 8.0
MySQL 5.7.26版本二进制版本部署
7.1 系统的准备
(1) 网络配置
ip,hostname,iptables,Selinux
(2) 规划目录
上传软件至:/usr/local
[root@db01 local]# tar xf mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
[root@db01 local]# ln -s mysql-8.0.16-linux-glibc2.12-x86_64 mysql8
[root@db01 ~]# mkdir -p /data/mysql/data_3306 #数据路径
[root@db01 ~]# mkdir -p /data/mysql/binlog_3306 #binlog日志路径(日志章节说明)
(3) 用户创建
[root@db01 ~]# useradd mysql
(4) 授权
[root@db01 local]# chown -R mysql.mysql /usr/local/mysql8 /data
(5) 环境变量
vim /etc/profile
添加:
export PATH=/usr/local/mysql8/bin:$PATH
[root@db01 local]# source /etc/profile
(6)残留处理
[root@db01 bin]# rpm -qa |grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@db01 bin]# yum remove mariadb-libs -y
(7) 依赖包安装
[root@db01 bin]# rpm -qa |grep libaio-devel
[root@db01 bin]# yum install -y libaio-devel
7.2 数据初始化 (建系统库)
[root@db01 data_3306]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql8 --datadir=/data/mysql/data_3306
7.3 配置文件准备
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql8
datadir=/data/mysql/data_3306
server_id=6
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
7.4 准备启动脚本
[root@db01 support-files]# cd /usr/local/mysql8/support-files
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
[root@db01 ~]# chkconfig --add mysqld
[root@db01 ~]# systemctl start mysqld
[root@db01 ~]# mysql
[root@db01 ~]# systemctl restart mysqld
清空8.0环境,部署MySQL5.7
pkill mysqld
rm -rf /data/mysql/data_3306/*
chkconfig --del mysqld
[root@db01 local]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
[root@db01 local]# ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql57
vim /etc/profile
export PATH=/usr/local/mysql57/bin:$PATH
[root@db01 local]# source /etc/profile
[root@db01 local]# chown -R mysql.mysql /usr/local/mysql57
[root@db01 local]# chown -R mysql.mysql /data
[root@db01 data_3306]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3306
[root@db01 local]# cd /usr/local/mysql57/support-files/
[root@db01 support-files]# ll
total 24
-rw-r--r-- 1 7161 31415 773 Apr 13 2019 magic
-rwxr-xr-x 1 7161 31415 1061 Apr 13 2019 mysqld_multi.server
-rwxr-xr-x 1 7161 31415 894 Apr 13 2019 mysql-log-rotate
-rwxr-xr-x 1 7161 31415 10576 Apr 13 2019 mysql.server
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
cp: overwrite ‘/etc/init.d/mysqld’? y
[root@db01 support-files]# chkconfig --add mysqld
[root@db01 support-files]# systemctl start mysqld
第二章 体系结构与基础管理
1.MySQL的工作模型
C/S : 客户端/服务端模型
1.1 服务端程序
mysqld
1.2 客户端程序
mysql
mysqldump
mysqladmin
1.3 连接协议(Linux)
网络套接字: TCP/IP网络连接串 ----> mysql -uroot -p123 -h10.0.0.51 -P3306
本地套接字: socket本地连接串 ----> mysql -uroot -p123 -S /tmp/mysql.sock
- MySQL的实例
实例 = mysqld + Master Thread + worker Threads + 专用内存
公司 = Boss + Manager + worker + 办公室 - mysqld 程序结构
3.1 SQL是什么?
结构化查询语言.关系型数据库中的专用命令.
3.2 SQL种类
DDL : 数据定义
DCL : 数据控制
DML : 数据操作
DQL : 数据查询
3.3 一条SQL语句的执行逻辑
略.
- MySQL对象逻辑结构
库 : database / schema
库名
属性
表 : table
表名
表属性
字段(列)
数据行(记录)
- MySQL对象物理结构
5.1 宏观
见图片
5.2 微观
见图片