1、简述MySQL体系结构。2、安装部署MySQL。(使用yum以及通用二进制方式)

文章详细介绍了MySQL的体系结构,包括SQL接口、解析器、优化器、缓存、存储引擎等组件,以及SQL语句的执行流程。同时,文章提供了MySQL的在线和离线安装步骤,包括RPM包安装和通用二进制方式,并涉及启动、权限设置及密码策略调整。
摘要由CSDN通过智能技术生成

一.MySQL体系结构

Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的

Connectors指的是不同语言中与SQL的交互

Management Serveices & Utilities: 系统管理和控制工具

Connection Pool:连接池。管理缓冲用户连接,线程处理等需要缓存的需求

SQL Interface:SQL接口,接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调

用SQL Interface

Parser: 解析器。SQL命令传递到解析器的时候会被解析器验证和解析。

Optimizer:查询优化器。SQL语句在查询之前会使用查询优化器对查询进行优化。

Cache和Buffer: 查询缓存。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数

据.

Engine:存储引擎。存储引擎是MySql中具体的与文件打交道的子系统。

一条SQL语句执行流程: 

连接层

(1)提供连接协议:TCP/IP 、SOCKET

(2)提供验证:用户、密码,IP,SOCKET

(3)提供专用连接线程:接收用户SQL,返回结果

通过以下语句可以查看到连接线程基本情况

mysql> show processlist;

SQL层

(1)接收上层传送的SQL语句

(2)语法验证模块:验证语句语法,是否满足SQL_MODE

(3)语义检查:判断SQL语句的类型

DDL :数据定义语言

DCL :数据控制语言

DML :数据操作语言

DQL: 数据查询语言

...

(4)权限检查:用户对库表有没有权限

(5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案.

(6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划

代价模型:资源(CPU IO MEM)的耗损评估性能好坏

(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果

执行结果:在磁盘的xxxx位置上

(8)提供查询缓存(默认是没开启的),会使用redis tair替代查询缓存功能

(9)提供日志记录(日志管理章节):binlog,默认是没开启的。

存储引擎层(类似于Linux中的文件系统)

负责根据SQL层执行的结果,从磁盘上拿数据。

将16进制的磁盘数据,交由SQL结构化化成表,

连接层的专用线程返回给用户。

MySQL安装与部署

RPM包安装(在线安装,离线安装两种方式)-----测试开发环境常用

在线安装

添加一个mysql的yum仓库源

#yum install http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装mysql

# yum install mysql-community-server

离线安装

下载RPM安装包,上传至服务器

 解压

创建一个文件夹(后期不用了可以直接删除文件夹,快捷方便)

# mkdir mysql

#tar xf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C mysql

安装四个所需的包

#yum localinstall -y mysql-community-server-5.7.18-1.el7.x86_64.rpm mysql-community-client-5.7.18-1.el7.x86_64.rpm mysql-community-common-5.7.18-1.el7.x86_64.rpm mysql-community-libs-5.7.18-1.el7.x86_64.rpm

在线和离线安装完成后启动mysql

# systemctl start mysqld //当前启动

# systemctl enable mysqld //开机自启动

查询临时登录密码:

# awk '/temporary password/ {print $NF}' /var/log/mysqld.log

yPVr*drYb1uv

或# grep 'temporary password' /var/log/mysql.log   查询

登录数据库:

# mysql -uroot -p

Enter password:

#mysql -uroot -p ‘密码’ 可直接登录,会提醒不安全,但能用

登录后不论执行什么会提醒必须先修改密码才能继续操作

修改密码

mysql> alter user root@localhost identified by '123456';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

密码要符合密码复杂性要求,不然不能成功   如:RedHat@123

mysql> alter user root@localhost identified by 'RedHat@123';

Query OK, 0 rows affected (0.00 sec)

通用二进制方式-----生产环境常用

下载包 --glibc

[root@node4 ~]# ll mysql-5.7.14-linux-glibc2.5-x86_64.tar

-rw-r--r-- 1 root root 672716800 Jul  5 14:15 mysql-5.7.14-linux-glibc2.5-x86_64.tar

创建用户及组

# groupadd -r mysql

# useradd mysql -r -g mysql -c "MySQL Server" -s /bin/false

解压,软链接

# 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

‘/usr/local/mysql’ -> ‘/usr/local/mysql-5.7.14-linux-glibc2.5-x86_64’

初始化

# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

提供配置文件和服务启动脚本

# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

修改配置文件:vim /etc/my.cnf

[mysqld]

...

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

服务脚本

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

添加系统服务,并设置开机自启动

# chkconfig --add mysqld

# chkconfig mysqld on

启动mysql

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

配置环境变量:

# vim /etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

加载使其生效。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值