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

news/2025/2/21 7:50:59/

一.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

加载使其生效。
 


http://www.ppmy.cn/news/774779.html

相关文章

电线之间:采访Microsoft Edge性能PM Nolan Lawson

by Vivian Cromwell 通过维维安克伦威尔(Vivian Cromwell) 电线之间:采访Microsoft Edge性能PM Nolan Lawson (Between the Wires: An interview with Microsoft Edge performance PM Nolan Lawson) I interviewed Nolan Lawson, Web Performance PM at Microsoft …

PM1200手持无线电综合测试仪

PM1200手持无线电综合测试仪 产品频率范围为2MHz~1300MHz,能对调频、调幅和单边带无线电台进行接收、发射和双工测试,并可对多种无线电参数进行测量。内置射频合成源、射频功率计、射频频率计、射频调制度仪、双音频合成源、音频电压表、音频…

【毕业设计】基于Arduino的智能灌溉系统 - 嵌入式 单片机 物联网

文章目录 1 简介1 硬件要求2 项目背景3 实现功能4 OLDE显示屏5 IO扩展器6 系统构建7 完整代码8 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目,大家可用于 课程设计 或 毕业设计 基于Arduino的智能灌溉系…

Python在信号处理中的应用:模糊熵的计算

Python在信号处理中的应用:模糊熵的计算 摘要: 信号处理是一门广泛应用于各个领域的学科,其中模糊熵作为一种信号特征描述的方法,在信号处理和信息理论中有着重要的作用。本文将以Python为工具,介绍如何使用Python编程…

【React】每日精选5题 2023-7-6

第1题:怎么在代码中判断一个 React 组件是 class component 还是 function component? 可以使用JavaScript的typeof运算符和React的Component类来进行判断。 代码示例: function isClassComponent(component) {return (typeof component f…

广元停车场系统推荐_广元车牌自动识别停车系统设计方案,车牌自动识别系统停车场哪家有名...

广元车牌自动识别停车系统设计方案 成都臻致三才科技有限公司自2014年成立以来“云”车牌识别系统、IC卡车辆管理系统、远距读卡系统、视频车位引导系统、人行通道闸、智能道闸、特种防恐设备(升降路桩、阻车破胎器、路障机)、不锈钢伸缩门、铝合金伸缩门,伸缩平移门…

智慧园区可视化解决方案助力园区管理科学化和智能化

利用数字孪生可视化技术打造的智慧园区可视化解决方案,实现了数据融合及全场景三维可视化综合展现,对园区多个维度日常运行进行监测和管理,为客户提供一个集园区展示、运营、决策、服务多维一体的智能运营管理平台。 目前,智慧园区…

网络工程师培训资料-路由器帐号和密码大全

艾玛 701g 用户名:admin 密码:admin用户名:SZIM 密码:SZIM艾玛701H 用户名:admin 密码:epicrouterAdsl Router用户名:anonymous 密码:12345华为 MT800用户名&#xff1a…