数据库-简介与安装-01

一.数据库课程介绍

1.课程大纲(作为DBA必会)
    数据库介绍
    mysql版本为5.7 介绍及安装
    mysql的体系结构及基础管理
    sql基础 语句+元数据获取
    索引及执行计划管理
    存储引擎
    日志
    备份恢复
    主从复制
    高可用及读写分离
    分布式数据库
    mysql全面优化
    DBA就业指导
    redis MongoDB ElasticSearch

2.IT人员具备的职业素养

1.人品
2.严谨
3.心态
4.细心

3.熟悉操作系统(精通)

Linux centos6/7/8

4.熟悉云架构

docker

5.熟悉业务

业务
产品的功能
用户的行为

6.熟悉行业

数据排名https://db-engines.com/en/
参加数据库大会
跟行业牛人交流

7.喜欢数据库

坚持
自己品!!!!

====================================

二.数据库产品介绍

1.数据库管理系统(DBMS)database management servier/Database Management System
  RDBMS    关系型数据库
    oracle   
    mysql
    mssql 
    PG
  NOSQL    非关系型数据库
    mongodb
    redis
    ES
    memcached  
  MEWSQL   分布式数据库
    RDS,DRDS   ---->alisql      TDDL    
    polarDB      ---->OB(做成一体机)
    pincap     tidb
2.MySQL产品分支(了解)
  oracle  MySQL
  MariaDB  5.5  -----> 10.0
  percona  MySQL
  RDS/TDSQL  云数据库
3.MySQL  企业版本选择
  5.6   5.6.34  5.6.36  5.6.38 
  5.7   5.7.18  5.7.20  5.7.22  5.7.24  5.7.26(现在使用的)
  8.0   8.0.10之前都是测试版本  8.0.11
  GA时间:5.6.38  5.7.20 2017-09-13
MySQL二进制版本下载地址https://downloads.mysql.com/archives/community/
图片.png

三.MySQL 5.7.26 二进制版本 手撕(安装)

1.规划
OS: Centos 7.6 
磁盘: 20G(system)+50G(/data)
IP:10.0.0.51 
hostname: db01 
/etc/hosts10.0.0.51 db01
iptables: OFF 
SELINUX: disabled
2.数据目录规划
[root@db01 ~]# mkfs.xfs  /dev/sdb
[root@db01 ~]# blkid
/dev/sda1: UUID="fd2e0ca7-32be-425f-86a2-85c02b9ec5ea" TYPE="xfs" 
/dev/sda2: UUID="79a3924b-739e-48dc-ab0c-0444b9ac6591" TYPE="swap" 
/dev/sda3: UUID="3a3a295f-88f8-456d-94dc-1a3eeb517c02" TYPE="xfs" 
/dev/sdb: UUID="8c6d28bb-4c6e-4ea3-a59d-5a256b3b56fc" TYPE="xfs" 
[root@db01 ~]# vim /etc/fstab 
添加:
UUID="8c6d28bb-4c6e-4ea3-a59d-5a256b3b56fc" /data                 xfs     defaults        0 0

[root@db01 ~]# mkdir /data
[root@db01 ~]# mount -a
[root@db01 ~]# df -h
3.软件上传解压
[root@db01 /usr/local]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
文件该名称或者创建软连接:mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
4.原始环境检查
①检查有没有原来版本的软件,如果有就 卸载:
检查:rpm -qa|grep mariadb
卸载:yum remove mariadb-libs -y
5.用户权限准备
创建虚拟用户:useradd -s /sbin/nologin -M mysql
修改目录权限:chown -R mysql.mysql /data
            chown -R mysql.mysql /usr/local/mysql
6.设置环境变量
  vim /etc/profile 
  添加:export PATH=/usr/local/mysql/bin:$PATH
  让这个文件重启一下生效:source /etc/profile
检查一下有没有安装成功:mysql -V(大写)
 显示结果:mysql  Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using  EditLine wrapper
5.7以后的版本有两种方法可以设置密码
一种是系统自动生成的 但是密码非常的麻烦,不容易记住:mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
另外一种是自己设置的:mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
(密码可以要也可以不要)
报错:mysqld: error while loading shared libraries libaio.so.1: cannot open shared object file: No such file or directory
解决方法:yum install -y libaio-devel
说明
--initialize             使用一种安全的模式初始化数据.   
特点:   1. 初始密码   2. 密码复杂度    3. 密码过期时间??
--initialize-insecure    使用一种不安全的模式初始化数据.
1. 无密码    2. 无密码复杂度   
5.7以前的版本只有一种方法
    /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
7.编写配置文件
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
##四.MySQL的体系结构
#####1.MySQL  c/s结构
    server端:mysqld
    clint端:mysql,mysqldump,第三方程序(开发)
#####2.

公司: BoSS + 经理 + 员工 + 办公区
实例: mysqld + Mater Thread + 干活Thread + 专用内存



#####3.mysqld核心程序结构
    0.面试:1条sql语句在mysql中是如何处理的?
    1.sql语句:结构化查询语句
    2.sql分类:DDL(数据定义语言),DCL(数据控制语言),DML(数据操作语言)
    3.一条sql语句:
![图片.png](https://upload-images.jianshu.io/upload_images/18572205-6e413c2a5a8fb8a7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4.sql语句的执行过程
    连接层:
        ①提供连接协议
        TCP/IP:网络scoke=IP+Port
        本地socket:socket文件
        ②验证用户名密码,ip
        ③提供连接线程
            负责:sql接受和结果的反馈
图片.png
    sql层
        (1):语法检查
        (2):语义检查
        (3):权限检查
        (4):解析:生成多种执行计划数
        (5):优化器:判断哪一种执行计划,代价最低
            资源代价:CPU,IO,MEM
        (6):执行器:执行优化器选择后的执行计划执行。得到需要查询数据的存储位置
      存储引擎层:(文件系统)
            和磁盘打交道的层次,
            转回给sql层,结构域化成表,通过连接线程返回结果。
执行过程简图

五.物理存储结构

宏观(角度观察):
myisam存储引擎
    -rw-r----- 1 mysql mysql   10816 Nov 11 12:03 user.frm   表结构
    -rw-r----- 1 mysql mysql     340 Nov 11 12:03 user.MYD   表数据
    -rw-r----- 1 mysql mysql    4096 Nov 11 12:03 user.MYI   索引
INNODB 存储引擎表(5.5以后主用innodb):
    time_zone.frm  表结构
    time_zone.ibd  数据+索引(IOT)
微观(角度观察):
segment(段):一个(非分区表)表就是一个段,由一个或多个区构成。
extent(区   :《连续》的64个page,默认1M
page(页)   :MySQL的最小物理IO单元,默认IO(1页=16kb),《连续》的4个OS block

六.MySQL逻辑结构(逻辑概念)

库 -------> 目录
表 ------->表文件
列 :列名+列属性(约束,数据类型,其他属性)
行 :记录
属性:数据行,权限等....

七:mysql基础管理

1.mysql的用户管理
作用?
登录mysql    管理mysql
2.用户的定义
用户名@'白名单'
什么是白名单?允许用户登录的"范围" (ip段)
oldguo@'10.0.0.5%'  
oldguo@'10.0.0.%'
oldguo@'10.0.0.0/255.255.254.0'
==================
oldguo@'10.0.0.254'
oldguooldguo@'%'
oldguo@'%'
oldguo@'localhost'
oldguo@'oldguo.com'
3.用户的管理命令
1.查
5.7+:mysql> select user,host ,authentication_string from mysql.user;
5.7-:mysql> select user,host ,password  from mysql.user;
2.增(创建用户)
mysql> create user oldboy@'10.0.0.%'; 
3.改
alter user oldboy@'10.0.0.%'  identified by '123';
4.删
drop user oldboy@'10.0.0.%';
4.权限的定义
权限定义方法:  GRANT ALL ON 权限作用范围  TO 用户 IDENTIFIED BY 密码;
GRANT SELECT, INSERT, UPDATE, DELETE ON oldguo.*  TO  oldguo@'10.0.0.%'  IDENTIFIED  BY '123'
权限作用范围:
*.*  -R /
oldboy.*  -R /oldboy
oldboy.t1 /oldboy/t1
5.权限管理
①授权
  例子:创建并授权超级管理员用户root,能够通过10网段任意地址管理数据库.
grant all on *.* to root@'10.0.0.%' identified by '123' with grant option;
2.查询用户权限
show grants for root@'10.0.0.%';
例子2: 创建一个应用用户app,能够通过10网段访问(SELECT, INSERT, UPDATE, DELETE)app库的所有表
grant SELECT,INSERT,UPDATE,DELETE on app.* to app@'10.0.0.%' identified by '123';
回收:
说明:多次授权是叠加关系,修改权限只能回收
收回app的删除权限
show grants for app@'10.0.0.%';
grant SELECT,INSERT,UPDATE,DELETE on app.* to app@'10.0.0.%' identified by '123';
给权限 
revoke delete on app.* from app@'10.0.0.%';收回权限的方法

新特性:

8.0以前:命令权限
  all
SELECT, INSERT, UPDATE, DELETE, CREATE, RELOAD, 
SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER,
 SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, 
REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,   
CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, 
TRIGGER, CREATE TABLESPACE,DROP
with grant option
8.0以后:支持角色功能,自由打包需要的权限

作业:

实现systemd模式管理mysql启动关闭(systemd); systemctl start/stop/restart mysqld
vim /etc/systemd/system/mysqld.service 
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
或者:   
chkconfig --add mysqld 
systemctl start/stop/restart  mysqld 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352