一张图学会MySQL体系结构;两种安装方式

目录

MySQL体系结构

一、连接组件:

二、服务部分

1、连接池:

2、SQL层:

SQL接口组件:

解析器组件:

查询优化器组件:

缓存和缓冲区:

3、存储引擎:

4、物理文件层:

① 日志文件

②数据文件

③配置文件

④其他文件

MySQL的安装

环境准备:

使用YUM方式安装:

 通用二进制的方式安装:


MySQL体系结构

MySQL最上层是连接组件和下面服务器组成。

一、连接组件

支持多种不同的语言与之进行交互。

二、服务部分

  • 连接池管理工具和服务SQL接口解析器优化器缓存存储引擎文件系统组成。
  • 而这些组件在MySQL服务中被分为四个层级:连接层、SQL层、插件式存储引擎、物理文件
1、连接池:

        由于每次建立需要消耗很多的时间。连接池的作用就是将这些已经建立过的连接缓存下来,下次可以直接用已经建立好的连接,提升服务器性能。它负责监听对客户端向 MySQL Server 端的各种请求,身份验证、建立连接、权限校验、维持和管理连接、检查内存、数据缓存和管理用户的连接。通信方式是半双工模式。

2、SQL层:

管理服务和工具组件。

  • SQL接口组件:SQL接口,接受用户的SQL命令,并且返回用户需要查询的结果。
  • 解析器组件:SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本, 主要功能:
    a . 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的
    b. 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的。
  • 查询优化器组件:查询优化器,SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。
  • 缓存和缓冲区:查询缓存,如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。
    通过LRU算法将数据的冷端溢出,未来得及时刷新到磁盘的数据页,叫脏页。
    这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等
3、存储引擎:

        存储引擎是MySql中具体的与文件打交道的子系统,真正的负责了MySQL中数据的存储和提取

        存储引擎就是如何管理操作数据(存储数据、更新数据、查询数据等)的一种方法,当然在 MySQL 中。而可拔插就可以理解为 MySQL 提供了一个接口,只要遵循规则即可以自定义实现存储引擎,Java中接口与实现类的关系。

4、物理文件层:

数据存储层,主要是将数据存储在运行与裸设备的文件子系统之上,并完成与存储引擎的交互。

支持的文件类型:EXT3、EXT4、NTFS、NFS

MySQL中的物理文件包括四种:

① 日志文件
事务中的隔离级别的实现就依赖于日志文件的

Error log错误日志:记录遇到的所有严重的错误信息,每次启动关闭的信息信息;
Binary log 二进制日志:也就是binlog,记录所有修改数据库的操作;
Query log 查询日志:记录所有查询操作,体积较大,开启后对性能有影响。
Slow Query log 慢查询日志:记录所有执行时间超过long_query_time的SQL语句和达到min_examined_row_limit条距离的语句。
InnoDB redo log:记录InnoDB所做的物理变更和事务信息。
中继日志:只从复制产生,用户slave机读取,复制master机的SQL操作。

②数据文件

.frm文件:表结构定义信息;
.MYD文件:MyISAM引擎的数据文件;
.MYI文件:MyISAM引擎的索引文件;
.ibd文件和 .ibdata文件:InnoDB的数据和索引; .ibdata配置为共享表空间时使用

③配置文件

系统配置文件:/etc/my.cnf;

④其他文件

pid文件:存储自己的进程ID;
socket文件:连接客户端使用;


MySQL的安装

环境准备:
  • CentOS操作系统
  • 关闭防火墙、禁用SELinux。
                systemctl stop firewalld //当前关闭
                systemctl disable firewalld //永久关闭
          
                vi /etc/selinux/config   -- 进入配置文件找到‘SELINUX=’这一行。
                
                SELINUX=disabled  --将SELinux关闭
                
                或在命令行用: sed -i  '/^SELINUX=/ c SELINUX=disabled' /etc/selinux/config
                
                或:setenforce 0 //设置为宽容(警告)模式
  • 安装常用软件
                yum install wget unzip bash-completion tree vim lrzsz net-tools -y
使用YUM方式安装:

配置一个yum仓库文件:

/etc/yum.repos.d/mysql.repo
				
[mysql]
name=mysql5.7
baseurl=http://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0

拉取MySQL包并安装:
 yum install mysql-community-server -y

查看安装情况:

启动并查看状态:

 通用二进制的方式安装:

1、准备mysql包 --glibc

  mysql-5.7.14-linux-glibc2.5-x86_64.tar

2、创建用户及组
     groupadd -r mysql
     useradd mysql -r -g mysql -c "MySQL Server" -s /bin/false

3、 解压,软链接
        tar xf mysql-5.7.14-linux-glibc2.5-x86_64.tar -C /usr/local
        tar xf /usr/local/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
        创建软链接:为了方便以后升级。
        ln -sv /usr/local/mysql-5.7.14-linux-glibc2.5-x86_64 /usr/local/mysql

4、 初始化
        /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

5、提供配置文件和服务启动脚本
      cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
            修改配置文件:vim /etc/my.cnf
   

           服务脚本
           cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
            添加系统服务,并设置开机自启动
            chkconfig --add mysqld
            chkconfig mysqld on
  6、启动mysql
             /usr/local/mysql/bin/mysqld_safe --user=mysql &

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.98℃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值