简述MySQL体系结构以及安装部署MySQL

文章详细阐述了MySQL的体系结构,包括连接层、SQL层、存储引擎层和物理文件层的功能。同时,提供了两种安装MySQL的方法:使用yum在线和离线安装,以及通用二进制方式,并涵盖了安装过程中的关键步骤,如关闭防火墙、设置密码和字符集修改。
摘要由CSDN通过智能技术生成

目录

一、简述MySQL体系结构

1、连接层:

2、SQL层:

3、存储引擎层:

4、物理文件层:

 5、一条SQL语句执行过程:

二、安装部署MySQL(使用yum以及通用二进制方式)

目录

一、简述MySQL体系结构

1、连接层:

2、SQL层:

3、存储引擎层:

4、物理文件层:

 5、一条SQL语句执行过程:

二、安装部署MySQL(使用yum以及通用二进制方式)

1、前期准备

1.1、关闭防火墙、禁用SELinux

2、使用yum

2.1、在线安装

2.1.1、配置一个安装yum源

2.1.2、安装MySQL数据库

2.2、离线安装:

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

2.2.2、解压

2.2.3、安装

2.2.4、启动MySQL服务,并设置成开机自启动

2.2.5进入MySQL数据库

2.2.6、结果

3、通用二进制方式:

3.1、下载包

3.2、创建用户以及组

3.3、解压,软连接

3.4、初始化

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

3.6、启动MySQL

4、查询临时登录密码

 5、修改数据库密码

 6、MySQL root密码恢复

 7、MySQL修改字符集并查看


1、前期准备

1.1、关闭防火墙、禁用SELinux

2、使用yum

2.1、在线安装

2.1.1、配置一个安装yum源

2.1.2、安装MySQL数据库

2.2、离线安装:

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

2.2.2、解压

2.2.3、安装

2.2.4、启动MySQL服务,并设置成开机自启动

2.2.5进入MySQL数据库

2.2.6、结果

3、通用二进制方式:

3.1、下载包

3.2、创建用户以及组

3.3、解压,软连接

3.4、初始化

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

3.6、启动MySQL

4、查询临时登录密码

5、修改数据库密码

6、MySQL root密码恢复


一、简述MySQL体系结构

MySQL是由SQL接口、解析器、优化器、存储引擎组成。

一共连接层、SQL层、存储引擎层和物理文件层

1、连接层:

思想:为解决资源的频繁分配,释放所造成的问题,为数据库连接建立一个“缓冲池”。

原理:预先在缓冲池放入一定数量的连接,党需要建立数据库连接时,只需从“缓冲池”中取 

           出一个,使用完毕之后再放回去。

作用:进行身份验证、线程重用,连接限制、检查内存,数据缓存;管理用户的连接,线程

           处理等需要缓存的需求。

2、SQL层:

管理服务和工具组件:从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等

                                    方面管理数据库。

SQL接口组件:进行DML、DDL、存储过程、试图、触发器等操作和管理;用户SQL命令接

                         口。

解析器组件:验证和解析SQL命令。

查询优化器组件:对SQL语句查询进行优化“取、投影和连接”。

缓存和缓冲区:有一系列小缓存组成的。比如表缓存、记录缓存、key缓存、权限缓存等。

3、存储引擎层:

MySQL的存储引擎是插件式的。它根据MySQL AB公司提供的文件访问层的一个抽象接口来制定一种文件访问机制,这种访问机制就叫存储引擎。

MyISAM:它查询速度快,有较好的索引优化和数据压缩技术。但是它不支持事务;

InnoDB:它支持事务,并且提供行级的锁定,应用也相当广泛;

BDB:不在从底层支持BDB;

Memory:适合存储临时数据;

Archive:适合存储历史数据;

4、物理文件层:

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

文件内容:

        1、数据文件

        2、日志文件

        3、配置文件

         4、其他文件

 5、一条SQL语句执行过程:

连接层:

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

        (2)提供验证:用户,密码,IP,SOCKSET;

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

SQL层:

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

        (2)语法验证模块:验证语句语法,是否满足SQL_MODE;
        (3)语义检查:判断SQL语句的类型;

                DDL:数据定义语言

                DCL:数据控制语言

                DML:数据操作语言

                DQL:数据查询语言

                ....

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

        (5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),即生成多种执

                                行方案

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

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

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

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

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

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

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

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

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

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

二、安装部署MySQL(使用yum以及通用二进制方式)

1、前期准备

1.1、关闭防火墙、禁用SELinux
systemctl stop firewalld  //关闭防火墙
systemctl disable firewalld //永久关闭
禁用SELinux:
进入文档:
vi /etc/selinux/config

将SELINUX= ???
修改为SELINUX=disabled
保存并退出
刷新:setenforce 0 //设置为宽容(警告)模式

推荐使用:#sed -i '/^SELINUX=/ c SELINUX=disabled' /etc/selinux/config
依旧需要刷新

安装常用软件:
yum install wget unzip bash-completion tree vim lrzsz net-tools -y

2、使用yum

2.1、在线安装
2.1.1、配置一个安装yum源
[root@localhost ~]# yum install http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm -y
2.1.2、安装MySQL数据库
[root@localhost ~]# yum install mysql-community-server -y
2.2、离线安装:
2.2.1、下载RPM安装包,并上传至服务器
2.2.2、解压
[root@localhost ~]# mkdir mysql/
[root@localhost ~]# tar xf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C mysql
[root@localhost ~]# cd mysql/
2.2.3、安装
卸载:mariadb-libs
[root@localhost mysql]# rpm -e mariadb-libs postfix
[root@localhost 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 -y
2.2.4、启动MySQL服务,并设置成开机自启动
[root@localhost mysql]# systemctl start mysqld
[root@localhost mysql]# systemctl enable mysqld
2.2.5进入MySQL数据库
[root@localhost mysql]# mysql -u root -p  
Enter password:
2.2.6、结果

3、通用二进制方式:

3.1、下载包
3.2、创建用户以及组
[root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd mysql -r -g mysql -c "MySQL Server" -s /bin/false
3.3、解压,软连接
[root@localhost ~]# tar xf mysql-5.7.14-linux-glibc2.5-x86_64.tar -C /usr/local
[root@localhost ~]# tar xf /usr/local/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
创建软连接:方便以后升级
[root@localhost ~]# 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'
3.4、初始化
[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
3.5、提供配置文件和服务启动脚本
[root@localhost ~]# 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

服务脚本:
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
添加系统服务,并设置为开机自启动
[root@localhost ~]# chkconfig --add mysqld
[root@localhost ~]# chkconfig mysqld on
3.6、启动MySQL
[root@localhost mysql]# mysql -u root -p  
Enter password:

4、查询临时登录密码

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

 5、修改数据库密码

设置及修改MySQL root用户密码
            方法1:# mysqladmin -uroot -p'123456' password '123'
                [root@node4 ~]# mysqladmin  -uroot -p password
                Enter password: 旧密码
                New password: 新密码
                Confirm new password: 再次输入新密码
            方法2:
                mysql> alter user root@localhost identified by '123';
                Query OK, 0 rows affected (0.00 sec)
            方法3:
                mysql> SET PASSWORD FOR 'root'@'localhost' = '123456';
                Query OK, 0 rows affected (0.00 sec)

            方法4:
                mysql> update mysql.user set authentication_string=password('12345')
                    -> where user="root" and host="localhost";
                Query OK, 1 row affected, 1 warning (0.00 sec)
                Rows matched: 1  Changed: 1  Warnings: 1

                mysql> flush privileges;
                Query OK, 0 rows affected (0.00 sec)

 6、MySQL root密码恢复

            思路:启动时跳过权限表,设置密码。
            配置文件添加[mysqld]
            skip-grant-tables
            
            方法1:
                mysql> update mysql.user set authentication_string=password('123456')
            -> where user='root' and host='localhost';
                mysql> flush privileges;
                
            方法2:
                mysql> flush privileges;
                mysql> ALTER USER root@localhost identified by '123456';

 7、MySQL修改字符集并查看

修改字符集

进入配置文件

[root@localhost ~]# vim /etc/my.cnf

在[mysqld]下添加下列代码
character-set-server=utf8 #utf8支持中文输入

退出,重启服务

[root@localhost ~]# systemctl restart mysqld

进入MySQL,查看字符集

mysql> show variables like'%character%';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值