甲骨人-MySQL网络课-day01


一、MySQL简介


1、MySQL运维DBA工作内容:

初级DBA:
    安装配置,基本使用,基本故障处理    
中级DBA:
体系结构、备份策略设计,故障恢复,基础高可用的运维(搭建、监控、故障处理、架构演变)、基础优化(索引、执行计划、慢日志)

高级DBA:
高可用架构(设计、实施、运维)、高性能架构(读写分离,分库、分表,分布式)、整体数据库优化(基于业务的SQL优化)

2、甲骨人-MySQL-网络班课程框架
一、MySQL5.7 简介及安装部署
二、体系结构和管理
三、SQL语句使用
四、元数据获取-Information_schema
五、基础优化——索引及执行计划管理
六、InnoDB存储引擎
七、日志管理
八、备份恢复、迁移
九、MySQL主从复制
十、MySQL传统高可用——MHA
十一、MySQL读写分离——Atlas
十二部分、MySQL分库分表-MyCAT
十三部分、MySQL5.7新型高可用方案——MGR,Innodb Cluster
十四部分、优化
NoSQL:
1、redis
2、Mongodb

3、MySQL版本选择
3.1 企业版(收费版本)
3.2 社区版(开源版本)
GA:稳定的发布版
3.3 行业中对MySQL版本的使用情况
    5.6  :老的环境    ----->60%
    5.7  :新的环境    ----->40%
建议:尽量选择GA6个月-12之间的产品
3.4 MySQL的获取    (下载)
社区版----->5.7---->5.7.17以后版本----->5.7.20
rpm   --->rpm -ivh  xxx.rpm    yum    不建议
通用的二进制包  ----->linux_genric版本(绿色版,解压完就能用)  企业建议使用
源码包     ----->Source code(可以定制一些,二次开发的功能)    大企业会用到的

补充:
    perconaDB:我们建议可以使用它的一些工具,percona-tookit
    MariaDB:tokuDB存储引擎,zabbix这种应用常用的


二、MySQL5.7 二进制安装过程
0、系统版本
[root@temp ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)

1、MySQL安装之前的准备工作

1.1 安装依赖包:
yum  install  -y   ncurses-devel libaio-devel

1.2 检查防火墙
iptables 
selinux
ip   hosts  主机名

2、上传软件并解压软件
mkdir /data/
useradd mysql
cd /data
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar 
rm -rf mysql-5.7.20-linux-glibc2.12-x86_64.tar
rm -rf mysql-test-5.7.20-linux-glibc2.12-x86_64.tar.gz 
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 

3、初始化数据(相当于dbca)
cd /data/mysql/bin
(方法1)
./mysqld --initialize  --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql
官方建议的:初始化完成之后,会生成临时密码
并且开启安全策略(密码长度、密码过期时间180天、密码复杂度)

(方法2)
./mysqld --initialize-insecure --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql


4、书写简易配置文件(二进制包需要手工写一个配置文件)

vim /etc/my.cnf
[mysqld]
basedir=/data/mysql 
datadir=/data/mysql/data 
socket=/tmp/mysql.sock 
log_error=/data/mysql/data/mysql.err
user=mysql
[mysql]
socket=/tmp/mysql.sock 

5、启动mysql数据库
cd  /data/mysql/support-files
./mysql.server start
cp mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld restart

6、验证数据库
6.1 修改环境变量
 vim .bash_profile
export PATH=/data/mysql/bin:$PATH
source  .bash_profile 

6.2 登陆数据库
mysql 
===============================================
三、MySQL体系结构及管理
1、服务器端客户端模型

Client  ---->  Server

在Linux中提供了两种连接协议:
(1)本地连接数据库使用:
Socket: 
mysql -uroot -p   -S   /tmp/mysql.sock
(2)远程连接
TCPIP:远程连接
mysql -uroot -p   -h 10.0.0.200 -P 3306

2、实例构成

mysql 单进程多线程的工作模式
    mysqld后台进程(老板)
            ----->Master Thread(经理)
                   ------>一堆线程(小弟)
    预分配的内存结构(办公室)        

mysql实例=mysqld进程+Master thread+一堆线程+预分配的内存结构    

    
3、mysqld服务构成

一条SQL语句的执行过程:

(1)连接层
      mysql  -uroot  -p  -h 10.0.0.200 -P 3306
    (1.1)提供连接协议(socket、TCPIP)
    (1.2)用户名密码验证
    (1.3)提供专用的连接线程(接受SQL、范围执行结果)
    select table_schema,table_name ,engine from information_schema.tables 
    where table_schema='mysql';
    
(2)SQL层
    (2.1) 语法验证
    (2.2) 权限验证
    (2.3) 语义检查(DDL、DML、DCL、DQL)
    (2.4) 专用的解析器,解析对应的类型的SQL语句,生成执行计划
    (2.5) 优化器基于代价,选择一个代价最低的执行计划
    (2.6) 执行器(负责执行优化器选择执行计划),得到一个结果(获取数据的方法)。
    (2.7) 提供了查询缓存 (SQLid+结果)query_cache,默认关闭的状态。Redis(Tair)缓存数据库配合使用。
    (2.8) 提供查询日志 
(3)存储引擎层(File system)
     拿着上层传送过来的,获取数据的方法,从磁盘取数据。


4、物理存储结构(了解)
库    ---->   目录
表    ---->   多个文件构成(不通存储引擎,存储方式不同)

转载于:https://my.oschina.net/u/3862440/blog/2248818

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值