当前位置:   article > 正文

简述MySQL体系结构以及安装部署MySQL_部署mysql服务器的过程

部署mysql服务器的过程

目录

一、简述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
  1. systemctl stop firewalld //关闭防火墙
  2. systemctl disable firewalld //永久关闭
  3. 禁用SELinux:
  4. 进入文档:
  5. vi /etc/selinux/config
  6. 将SELINUX= ???
  7. 修改为SELINUX=disabled
  8. 保存并退出
  9. 刷新:setenforce 0 //设置为宽容(警告)模式
  10. 推荐使用:#sed -i '/^SELINUX=/ c SELINUX=disabled' /etc/selinux/config
  11. 依旧需要刷新
  12. 安装常用软件:
  13. 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、解压
  1. [root@localhost ~]# mkdir mysql/
  2. [root@localhost ~]# tar xf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C mysql
  3. [root@localhost ~]# cd mysql/
2.2.3、安装
  1. 卸载:mariadb-libs
  2. [root@localhost mysql]# rpm -e mariadb-libs postfix
  3. [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服务,并设置成开机自启动
  1. [root@localhost mysql]# systemctl start mysqld
  2. [root@localhost mysql]# systemctl enable mysqld
2.2.5进入MySQL数据库
  1. [root@localhost mysql]# mysql -u root -p
  2. Enter password:
2.2.6、结果

3、通用二进制方式:

3.1、下载包
3.2、创建用户以及组
  1. [root@localhost ~]# groupadd -r mysql
  2. [root@localhost ~]# useradd mysql -r -g mysql -c "MySQL Server" -s /bin/false
3.3、解压,软连接
  1. [root@localhost ~]# tar xf mysql-5.7.14-linux-glibc2.5-x86_64.tar -C /usr/local
  2. [root@localhost ~]# tar xf /usr/local/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
  3. 创建软连接:方便以后升级
  4. [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、提供配置文件和服务启动脚本
  1. [root@localhost ~]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
  2. 修改配置文件:vim /etc/my.cnf
  3. [mysqld]
  4. ...
  5. basedir = /usr/local/mysql
  6. datadir = /usr/local/mysql/data
  7. 服务脚本:
  8. [root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  9. 添加系统服务,并设置为开机自启动
  10. [root@localhost ~]# chkconfig --add mysqld
  11. [root@localhost ~]# chkconfig mysqld on
3.6、启动MySQL
  1. [root@localhost mysql]# mysql -u root -p
  2. 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%';

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/867947
推荐阅读
相关标签
  

闽ICP备14008679号