Introduction à l'architecture MySQL et à la fondation du produit

1. Types de produits de base de données La
première génération d'architecture de base de données
----- L'ère des bases de données relationnelles (SGBDR)
Produits représentatifs:
source fermée: Oracle, MSSQL, DB2 ...
Open source: MySQL, PG, ClickHouse ...

L'architecture de base de données de deuxième génération: Concurrence, développement du volume d'affaires (volume d'utilisateurs, volume de données)
----- ère des bases de données relationnelles (SGBDR)
+
----- ère NoSQL (pas seulement l'ère SQL)
Produit représentatif: Memcache, Redis (cache), base de données de documents MongoDB, ES, Hadoop ...

L'architecture de base de données de troisième génération
-----
Produits représentatifs à l' ère de l'architecture de base de données distribuée / nouvelle (ère NewSQL) :
Série Ali: PolarDB, OB
Pincap: TiDB

2. Familier avec les
informations de classement des bases de données de l'industrie des bases de données
https://db-engines.com/en -> DB-Engines Ranking
Insérez la description de l'image ici

3. Choisissez MySQL Enterprise Edition
E: Enterprise Edition (des frais s'appliquent), vous pouvez télécharger une version d'essai de 30 jours
C: Community Edition (open source), service gratuit pendant 5 ans

Sélection de l'édition communautaire:
5.6: version GA 5.6.34-max entre juin et décembre, de préférence version 5.7.28 de préférence
: choisissez généralement la dernière version 5.7.28 GA (27 sept. 2019)
8.0: choisissez généralement la dernière version 8.0.18 de GA + (22 sept. 2019)

Version 5.6 2020, les services réguliers et étendus seront interrompus en octobre
5.7 Version 2021, les services réguliers interrompus en janvier

4. Obtenez le
site Web officiel de la version communautaire de MySQL : https://www.mysql.com/downloads/ Téléchargements de la communauté
MySQL (GPL) »Télécharger les archives» MySQL Community Server »Version du produit (Choisissez la dernière version du nombre pair ) Système d'exploitation: linux-Generic

5.
Préparation de l'environnement MySQL 5.1 pour le déploiement binaire

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

5.2 Vérifier la valeur 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 Télécharger le logiciel dans le répertoire spécifié

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

5.4 Décompressez et créez un lien logiciel

# 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 Modifier les variables d'environnement

# 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 Nettoyer l'environnement hérité

# 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 Installer les packages dépendants

yum install -y libaio-devel

5.8 Créer des répertoires associés et autoriser

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

5.9 Initialiser la base de données

/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 Préparation du fichier de configuration
Fonction:
1. Affecte le démarrage et le fonctionnement de la base de données.
2. Affecte la connexion client (initiée sur le serveur local)

vim /etc/my.cnf 

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

Ordre de lecture du fichier de configuration par défaut

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

5.11 Préparer le script de démarrage

# 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 MySQL Architecture
6.1 MySQL C / S Model Work Structure
Client:
Commandes intégrées: mysql, mysqldump, mysqladmin
Outils tiers: sqlyog, navicat, workbench
API: php-mysqli (phpmyadmin), simple-config (workpress)

Serveur:
TCP / IP -h -P socket (IP + port)
Unix Socket -S

Résumé: Utilisez les commandes ou les outils client pour vous connecter au serveur mysqld via un socket local Unix ou IP + Port.

6.2 Structure de l'instance
MySQL Composition de la structure de l'instance MySQL: démon mysqld + thread maître + thread de travail (IO \ SQL \ Purge ...) + structure de mémoire pré-allouée

Traitement des données MySQL: à travers des exemples -> traitement des données
Insérez la description de l'image ici

Qu'est-ce qu'un processus? Qu'est-ce qu'un fil?
Distinction de définition: Un processus est un programme avec des fonctions indépendantes, et un thread est l'entité du processus.
Distinction fonctionnelle: le processus est l'unité d'allocation et de planification des ressources; le thread est l'unité d'exécution du processus.

Plusieurs threads dans le même processus peuvent s'exécuter simultanément; un thread peut créer et annuler un autre thread. Les ressources ne peuvent pas être partagées entre les processus et les ressources peuvent être partagées entre les threads. Les processus entre chaque programme sont indépendants les uns des autres, mais les threads de chaque programme partagent des données entre eux. En bref,
1) Un programme a au moins un processus et un processus a au moins un thread.

2) L'échelle de division des threads est plus petite que celle des processus, ce qui fait que les programmes multithread ont une forte concurrence.

3) De plus, le processus dispose d'une unité de mémoire indépendante pendant l'exécution et plusieurs threads partagent la mémoire, ce qui améliore considérablement l'efficacité de fonctionnement du programme.

6.3 Le principe de fonctionnement du programme de base MySQL
6.3.1 Couche serveur / couche instance ---->
Connecteur Linux OS 6.3.1.1
Protocole de connexion: tcp / ip et
table des autorisations de chargement de socket unix : la
vérification du mot de passe de l' utilisateur génère une connexion via la vérification du mot de passe Thread

6.3.1.2 Couche SQL
6.3.1.3 Outils de gestion, plug-ins, mysqlshell (après 8.0)
6.3.2 Couche moteur / Couche moteur de stockage ----> système de fichiers

Insérez la description de l'image ici
Pour plus de détails, veuillez suivre le compte public WeChat
Insérez la description de l'image ici

Le contenu ci-dessus est enseigné par le professeur oldguo, veuillez consulter la station B pour plus de détails:
https://www.bilibili.com/video/BV157411K7sf?from=search&seid=2216971352526804506

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45320660/article/details/114529170
conseillé
Classement