MySQL简介及安装

一、MySQL简介及安装升级

1、什么是数据

数据(data)是数据库中存储的基本对象。数字只是一种最简单的数据,是数据的一种传统和狭义的理解。广义的理解,数据的种类很多,文字、图形、图象、声音、学生的档案记录等,这些都是数据。

2、数据库管理系统(DBMS)

  • RDBMS(关系型)
  • NoSQL(非关系型)
  • NewSQL(分布式型)

3、简介面试题

(1)笔试
请列举熟悉的数据库产品
数据库类型 数据库名称
RDBMS Orace、MySQL、MSSQL、PG
NoSQL redis、Mongo、ES
NewSQL TiDB、Spanner、OcenBase、PolarDB
(2)面试
你们公司用了哪些数据库产品

MySQL 版本:MySQL 5.7.20 数据库架构 备份策略 遇到的故障和性能问题 总结
Redis、MongoDB、ES

4、MySQL软件分支

Oracle MySQL、MariaDB、PerconaDB、云数据库(RDS MySQL,腾讯云等)。

5、MySQL的企业版本选择

企业版本主流
5.6版本 5.6.34、5.6.36、5.6.38、5.6.40
5.7版本 5.7.18、5.7.19、5.7.20、5.7.24

下载地址:https://downloads.mysql.com

image.png

企业版本新环境选择稳定版本GA版,6-12个月,偶数版。

6、MySQL5.7.26二进制规划和部署

规划
环境 配置
硬件配置 DELL R720,CPU28,MEM128G,RAID108*600 SAS
内核信息 Centos 7.6.1810 kernel 3.10.0-957.el7x86_64
网络规划 eth0:10.0.0.51/24,hostname:DB01
存储 /dev/sdb 900G
  • 创建相关目录
    ①/application(软件存放目录)
    ②/data/3306/data(数据存放目录)
    ③创建用户并且授权目录权限
    useradd mysql -s /sbin/nologin -M
    chown mysq:mysql -R /application
    chown mysql:mysql -R /data/3306/data
    ④上传软件并解压处理
    ⑤数据初始化
    rpm -qa | grep mariadb (确定是否有冲突,并且卸载)
    添加环境变量(/etc/profile):export PATH=/application/mysql/bin:$PATH
    查看MySQL版本(mysql -V)
    安装依赖:yum install -y libaio-devel
    初始化MySQL数据:mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/3306/data
    ⑥书写配置文件
    cat >/etc/my.cnf < [mysqld]
    user=mysql
    basedir=/application/mysql
    datadir=/data/3306/data
    socket=/tmp/mysql.sock
    secure-file-priv=/tmp
    [mysql]
    socket=/tmp/mysql.sock
    prompt=3306[\d]>
    EOF
    ⑦准备启动脚本
    cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
    启动方式说明:/etc/init.d/mysqld start|restart|stop
    ⑧添加到systemd管理中
    cat > /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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000
    EOF
    使用systemctl resstart|stop|start mysqld启动

补充升级8.0版本
①二进制包解压,设置软连接mysql8
②停止原数据库
systemctl stop mysqld.service
/etc/init.d/mysqld start|restart|stop
③修改环境变量
/etc/profile
export PATH=/application/mysql8/bin:$PATH
. /etc/profile
mysql -V查看版本
④修改/etc/my.cnf配置文件
[mysqld]
user=mysql
basedir=/application/mysql8
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=3306[\d]>
⑤修改/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=/application/mysql8/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
⑥启动systemctl restart mysqld
8.0以前的版本需要使用mysql_upgrade升级MySQL数据
du -sh 查看目录占用空间

小结
    版本选择(熟悉)
        5.6主流版本
        5.7主流版本
        GA 6-12
        changelog   what is new?
    安装方式(熟悉)
        二进制
        源码
    规划和部署(重点掌握)
    升级(了解)
    简易管理(熟悉)

二、MySQL体系结构和管理

MySQL C/S模型

Server: mysqld
Client:socket-仅本地连接使用、tcp/ip-应用连接使用

实例

mysqld ----> master thread ----> 干活的线程+预分配的内存结构

SQL语句执行过程

select user,host from mysql.user;
连接层:提供连接协议(socket、TCP/IP)
验证user password host port
提供连接线程
show processlist;
功能:接受SQL语句和返回结果
SQL层
语法检查和SQL_MODE检查
语义的检查和权限检查
解析预处理,生成解析树(执行计划树)
选择最优的方案(代价模型算法)
cpu、i/o、mem
选择最优的方案进行执行SQL语句
提供查询缓存(默认没有开启的),会使用redis rair替代查询缓存功能
提供志记录(日志管理章节):binlog,默认是没有开启的

image.png

存储引擎层
相当于文件系统,将数据取出,再交给SQL层机构化表,返回给用户
image.png

你可能感兴趣的:(MySQL简介及安装)