mysql introduction super détaillée à l'installation, à l'architecture et à la configuration de base, et à la gestion des connexions

Introduction et installation de mysql

mysql 分支 : Oracle , mariadb , percona , RDS , TX

Sélection de la version d'entreprise de mysql: 5.7.28+ 8.0.18+

Installez mysql 8.0.20

上传和解压:
https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz (软件包位置)
[root@db01 opt]# tar xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 	
[root@db01 opt]# ln -s /opt/mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
[root@db01 mysql]# vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@db01 mysql]# source /etc/profile
[root@db01 mysql]# mysql -V
mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)

创建用户(mysql内部管理时需要一个非ROOT用户来进行管理)
[root@db01 ~]# useradd mysql

创建目录并授权
[root@db01 ~]# mkdir -p /data/3306/data
[root@db01 ~]# chown -R mysql. /data

准备配置文件
[root@db01 ~]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

安装数据库的库文件
[root@db01 ~]# yum install libaio-devel -y

初始化数据库
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data

准备启动脚本
[root@db01 ~]# cp /usr/local/mysql/bin/mysql.server /etc/init.d/mysqld
[root@db01 ~]# systemctl enable mysqld
[root@db01 ~]# systemctl restart mysqld
[root@db01 ~]# systemctl start mysqld

此时数据库就可以正常使用
[root@db01 ~]# mysql

Architecture MySQL et gestion de base

Principe de fonctionnement de Mysql C / S
Serveur:
Client mysqld : API des outils de développement mysql mysqldump (sqlyog, navicat, workbench)

Instance Mysql
mysqld + thread principal + thread de travail + mémoire pré-allouée

Structure du programme Mysql
Couche serveur: couche de connexion Couche SQL Couche
moteur: FS

Architecture MySQL et processus d'exécution des instructions SQL
https://www.processon.com/view/link/60212b8ee0b34d208a6c0f8b
Insérez la description de l'image ici

Compréhension du stockage physique Mysql Compréhension des
macros: La bibliothèque dans la base de données est équivalente à la table dans la base de données du catalogue et la table dans le catalogue est équivalente au fichier sous le répertoire.
Compréhension micro: la zone d'extension (cluster) de 64 pages consécutives par défaut à 1 Mo, page de page: par défaut 16 Ko en continu 4 blocs, bloc rapide: par défaut 4 Ko, 8 512 octets consécutifs

Gestion de base Mysql


Rôle de gestion des utilisateurs : connectez-vous à la base de données, gérez les objets de la base de données

Définition
Username @ 'Whitelist': Une liste d'adresses IP autorisées à se connecter.

xiaoming@'localhost'   允许本地登录
xiaoming@'10.0.0.%'    允许10.0.0.0/255.255.255.0
xiaomingo@'10.0.0.0/255.255.254.0'  
xiaoming@'10.0.0.5%'    

Gestion des utilisateurs

查询用户
mysql> select user,host,plugin,authentication_string from mysql.user;
创建用户
mysql> create user xiaoming@'localhost' identified by '123456';

注意:
8.0之后,不再支持grant一次性创建用户授权了.必须先建用户后授权.
8.0之后,密码插件改为caching_sha2_password,早期版本是mysql_native_password

修改用户
mysql> alter user xiaoming@'localhost' identified by '123'; (修改用户密码)
mysql> alter user xiaoming@'localhost' account lock; (上锁)
mysql> alter user xiaoming@'localhost' account unlock; (解锁)
mysql> drop user xiaoming@'localhost'; (删除用户)

Gestion des autorisations
Rôle: Restreindre ce que les utilisateurs peuvent faire avec les objets de base de données.

查看所有的权限
mysql> show privileges;
授权表:
user  全局级别
db    单库级别
table 单表级别

例子1:给小明授权为本地的管理员
mysql> create user xiaoming@'localhost' identified with mysql_native_password by '123';
mysql> grant all on *.* to xiaoming@'localhost';

例子2:给小高授权为小高业务的业务用户
mysql> create user xiaogao@'localhost' identified with mysql_native_password by '123456';
mysql> grant select,update,detele,insert on xiaogao.* to xiaogao@'localhost';
查询小高权限
mysql> show grants for xiaogao@'localhost';
回收小高detele权限
mysql> revoke detele on xiaogao.* from xiaogao@'localhost';

Gestion des connexions


Socket du programme client intégré socket du fichier socket local = / tmp / mysql.sock
Application:
[root @ db01 ~] # mysql -uxiaoming -p123 -S /tmp/mysql.sock
Prérequis:
xiaoming @ 'localhost doit être créé dans avancer '

Prémisse TCP / IP
:
remote@'10.0.0.% 'doit être créé à l'avance
mysql> create user remote@'10.0.0.%' identifié par '123';
mysql> grant all on . To remote@'10.0 .0.% ';

Application:
[root @ db01 ~] # mysql -uremote -p123 -h10.0.0.51 -P3306

Je suppose que tu aimes

Origine blog.csdn.net/weixin_49629796/article/details/113761763
conseillé
Classement