mysql体系结构及四种部署方式

4 篇文章 0 订阅

mysql体系结构

在这里插入图片描述
一、连接层
思想
为解决资源的频繁分配-释放所造成的问题,为数据库连接建立一个“缓冲池”。
原理
预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。
作用
进行身份验证、线程重用,连接限制,检查内存,数据缓存;管理用户的连接,线程处理等需要缓存的需求

查看最大连接数
show variables like '%max_connections%';

二、SQL层
管理服务和工具组件
从备份和恢复的安全性、复制、集群、管理、配置、迁移和元数据等方面管理数据库
sQL接口组件
进行DML、DDL,存储过程、视图、触发器等操作和管理;用户sQL命令接口
解析器组件
验证和解析sQL命令
查询优化器组件
对sQL语句查询进行优化“选取、投影和连接”
缓存和缓冲区
由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等

查看缓存配置情况
show variables like '%query_cache%';

三、插件式存储引擎
MySQL的存储引擎是插件式的。它根据MySQL AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制,这种访问机制就叫存储引擎
MylSAM
它查询速度快,有较好的索引优化和数据压缩技术。但是它不支持事务。
lnnoDB
它支持事务,并且提供行级的锁定,应用也相当广泛。
BDB
不再从底层支持BDB
Memory
适合存储临时数据
Archive
适合存储历史数据

四、物理文件层
支持的文件类型
EXT3、EXT4、NTFS、NFS
文件内容
数据文件日志文件配置文件其他文件

MySQL安装部署

四种安装Mysql软件的文档

  1. 仓库安装
rpm -i https://repo.mysql.com//mysql80-community-release-el8-4.noarch.rpm
dnf install mysql-server
rpm -qa | grep mysql

systemctl start mysqld
systemctl status mysqld
  1. 本地安装
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.30-1.el8.x86_64.rpm-bundle.tar

tar xvf mysql-8.0.30-1.el8.x86_64.rpm-bundle.tar

dnf localinstall mysql-community-server-8.0.30-1.el8.x86_64.rpm \
mysql-community-client-8.0.30-1.el8.x86_64.rpm \
mysql-community-common-8.0.30-1.el8.x86_64.rpm \
mysql-community-icu-data-files-8.0.30-1.el8.x86_64.rpm  \
mysql-community-client-plugins-8.0.30-1.el8.x86_64.rpm \
mysql-community-libs-8.0.30-1.el8.x86_64.rpm

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# systemctl status mysqld
  1. 容器安装
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
ll /etc/yum.repos.d/
dnf install docker-ce docker-ce-cli
systemctl start docker
systemctl status docker
docker version
docker run hello-world
docker run mysql
docker ps
docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker ps
docker run --name mysqltest2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
netstat -lntup | grep 3306
docker ps
docker --help

docker exec mysqltest2 /bin/bash
dnf install bash-com*

docker exec -it mysqltest2 /bin/bash
docker ps
docker run --name mysqltest3 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker ps
docker run --name mysqltest5 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker ps
history 
  1. 源码安装
  2. 卸载数据库软件
dnf remove mysql-server

rpm -e mysql80-community-release

rpm -qa | grep mysql

rm -rf /var/lib/mysql/

rm -rf /var/log/mysql/

2.1 用shell写安装脚本

[root@localhost ~]# cat install_mysql.sh
#!/bin/bash
#author:jzl
#date:2022-9-11
#action:install_mysql
rpm -qa | grep mysql
if [  $? != 0 ]
then
        echo "没有mysql包"
else
        rpm -e mysql80-community-release
        rm -rf /var/lib/mysql/
        rm -rf /var/log/mysql/
        echo "正在卸载mysql"
        echo "正在安装mysql"
fi

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.30-1.el8.x86_64.rpm-bundle.tar

tar xvf mysql-8.0.30-1.el8.x86_64.rpm-bundle.tar

dnf localinstall mysql-community-server-8.0.30-1.el8.x86_64.rpm \
mysql-community-client-8.0.30-1.el8.x86_64.rpm \
mysql-community-common-8.0.30-1.el8.x86_64.rpm \
mysql-community-icu-data-files-8.0.30-1.el8.x86_64.rpm  \
mysql-community-client-plugins-8.0.30-1.el8.x86_64.rpm \
mysql-community-libs-8.0.30-1.el8.x86_64.rpm

systemctl start mysqld
if [ $? -eq  0 ]
then
        echo "安装成功"
else
        echo "安装失败"
fi

oldpasswd=`grep "password" /var/log/mysqld.log  | awk '{print $NF}'`
newpasswd='Redhat123.'
mysqladmin -uroot -p$oldpasswd password $newpasswd
echo "密码修改成功"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值