Introdução à arquitetura MySQL e base do produto

1. Tipos de produtos de banco de dados A
primeira geração de arquitetura de banco de dados
----- Era do banco de dados relacional (RDBMS)
Produtos representativos:
código fechado: Oracle, MSSQL, DB2 ...
Código aberto: MySQL, PG, ClickHouse ...

A arquitetura de banco de dados de segunda geração: Simultaneidade, desenvolvimento de volume de negócios (volume de usuários, volume de dados)
----- Era do banco de dados relacional (RDBMS)
+
----- Era NoSQL (não apenas era SQL)
Produto representativo: Memcache, Redis (cache), banco de dados de documentos MongoDB, ES, Hadoop ...

A arquitetura de banco de dados de terceira geração
-----
Produtos representativos na era da arquitetura de banco de dados distribuída / nova (era NewSQL) :
Ali Series: PolarDB, OB
Pincap: TiDB

2. Familiarizado com as
informações de classificação de banco de dados do setor de banco de dados
https://db-engines.com/en -> DB-Engines Ranking
Insira a descrição da imagem aqui

3. Escolha MySQL Enterprise Edition
E: Enterprise Edition (sujeito a taxas), você pode baixar uma versão de avaliação de 30 dias
C: Community Edition (código aberto), serviço gratuito por 5 anos

Seleção da edição da comunidade:
5.6: versão GA 5.6.34-máx entre junho e dezembro, de preferência versão de número par
5.7: geralmente escolha a versão GA mais recente 5.7.28 (27 de setembro de 2019)
8.0: geralmente escolha a versão GA mais recente 8.0.18 + (22 de setembro de 2019)

Versão 5.6 2020, serviços regulares e estendidos serão descontinuados em outubro
5.7 Versão 2021, serviços regulares descontinuados em janeiro

4. Obtenha o
site oficial da versão da comunidade do MySQL : https://www.mysql.com/downloads/
MySQL Community (GPL) Downloads »Arquivos de download» Servidor da comunidade MySQL »Versão do produto (escolha a versão mais recente do número par ) Sistema operacional: linux-Generic

5.
Preparação do ambiente MySQL 5.1 para implantação binária

# iptables -nL
# systemctl stop firewalld
# getenforce
# ping www.baidu.com

5.2 Verifique o valor MD5

# md5sum  mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
1daa30a32b99a92062f481bd3ef8694c    mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
对比官网中的MD5值: 1daa30a32b99a92062f481bd3ef8694c

5.3 Faça o upload do software para o diretório especificado

# cd /opt
上传软件包  mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

5.4 Descompacte e crie um link simbólico

# tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql

5.5 Modificar variáveis ​​de ambiente

# echo 'export PATH=/opt/mysql/bin/:$PATH' >>/etc/profile
# source /etc/profile  
# mysql -V
   mysql  Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using  EditLine wrapper

5.6 Limpe o ambiente legado

# rpm -qa|grep mariadb
    mariadb-libs-5.5.60-1.el7_5.x86_64

用yum清理
# yum remove mariadb-libs-5.5.60-1.el7_5.x86_64        

删掉/etc/my.cnf已有文件
# rm -rf /etc/my.cnf

5.7 Instale pacotes dependentes

yum install -y libaio-devel

5.8 Crie diretórios relacionados e autorize

# mkdir -p /data/3306                         -- 存放数据库数据
# useradd -M -s /sbin/nologin mysql           -- 创建管理用户
# chown -R mysql.mysql /data/3306  

5.9 Inicialize o banco de dados

/opt/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/3306

如果下载了5.6版本的初始化方式如下:
/opt/mysql/scripts/mysql_install_db   --user=mysql --basedir=/opt/mysql --datadir=/data/3306

5.10 Preparando o arquivo de configuração
Função:
1. Afeta o início e o funcionamento do banco de dados.
2. Afeta a conexão do cliente (iniciada no servidor local)

vim /etc/my.cnf 

[mysqld]
user=mysql
basedir=/opt/mysql
datadir=/data/3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

Ordem de leitura do arquivo de configuração padrão

# mysqld --help --verbose|grep my.cnf
/etc/my.cnf    --->  /etc/mysql/my.cnf   --->  /usr/local/mysql/etc/my.cnf    --->  ~/.my.cnf

5.11 Prepare o script de inicialização

# cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld    
# systemctl start mysqld      # /etc/init.d/mysqld start
# systemctl enable mysqld
# systemctl status mysqld
# mysql 
需要设置管理员密码如下:
# mysqladmin password 123456

6 Arquitetura MySQL
6.1 Estrutura de trabalho do modelo MySQL C / S
Cliente:
Comandos
integrados : mysql, mysqldump, mysqladmin Ferramentas de terceiros: sqlyog, navicat, workbench
API: php-mysqli (phpmyadmin), simple-config (workpress)

Servidor:
TCP / IP -h -P socket (IP + porta)
Unix Socket -S

Resumo: Use comandos ou ferramentas do cliente para se conectar ao servidor mysqld através de um soquete unix local ou IP + Porta.

6.2 Estrutura da instância do
MySQL Composição da estrutura da instância do MySQL: mysqld daemon + thread mestre + thread de trabalho (IO \ SQL \ Purge ...) + estrutura de memória pré-alocada

Dados de processamento do MySQL: por meio de exemplos -> dados de processamento
Insira a descrição da imagem aqui

O que é um processo? O que é um tópico?
Distinção da definição: um processo é um programa com funções independentes e um thread é a entidade do processo.
Distinção funcional: Processo é a unidade de alocação e programação de recursos; thread é a unidade de execução do processo.

Vários threads no mesmo processo podem ser executados simultaneamente; um thread pode criar e cancelar outro thread. Recursos não podem ser compartilhados entre processos e recursos podem ser compartilhados entre threads. Os processos entre cada programa são independentes uns dos outros, mas os threads de cada programa compartilham dados entre si. Resumindo,
1) Um programa tem pelo menos um processo e um processo tem pelo menos um thread.

2) A escala de divisão de threads é menor do que a de processos, o que faz com que programas multithread tenham alta simultaneidade.

3) Além disso, o processo possui uma unidade de memória independente durante a execução e vários threads compartilham a memória, o que melhora muito a eficiência operacional do programa.

6.3 O princípio de funcionamento do programa principal MySQL
6.3.1 camada do servidor / camada da instância ----> Linux OS
6.3.1.1 conector
Protocolo de conexão: tcp / ip e soquete unix
tabela de autorização de carga:
verificação de senha do usuário gera conexão por meio de verificação de senha Thread

6.3.1.2 Camada SQL
6.3.1.3 Ferramentas de gerenciamento, plug-ins, mysqlshell (após 8.0)
6.3.2 camada de mecanismo / camada de mecanismo de armazenamento ----> sistema de arquivos

Insira a descrição da imagem aqui
Para obter mais detalhes, siga a conta pública do WeChat
Insira a descrição da imagem aqui

O conteúdo acima é ministrado pelo professor oldguo, consulte a estação B para obter detalhes:
https://www.bilibili.com/video/BV157411K7sf?from=search&seid=2216971352526804506

Acho que você gosta

Origin blog.csdn.net/weixin_45320660/article/details/114529170
Recomendado
Clasificación