二、MySQL体系结构与管理

MySQL(C/S模型介绍)

1、MySQL连接方式
(1)TCP/IP 方式(远程、本地):
mysql -uroot -h10.1.20.2 -pdjfdfhdj -P3306
(2)Socket方式(仅支持本地):
mysql -uroot -h10.1.20.2 -S /tmp/mysql.socket

2、MySQL实例(多线程)
mysqld + master thread + worker thread + 预分配内存

3、mysqld服务器进程结构
(1)连接层
提供连接协议:TCP/IP、Socket
用户名、密码、IP、端口号等合法性
开启专用连接线程(接受语句、返回结果):show processlist;
将语句交给下一层
(2) SQL层
接收语句
语法检查、SQL_MODE
语义检查、权限检查
语句预处理
解析语句=>多种执行计划树
优化器算法=>执行代价(CPU、内存、IO最小)
选择执行代价最小的
语句执行器:找到数据存放的地址
查询缓存:默认不开
日志记录:默认不开(审计日志、通用日志、binlog)
(3)存储引擎层
根据SQL层的执行结果,去磁盘找到16进制的数据,
再由SQL层结构化成二维表,
再由连接层返回客户端

4、MySQL逻辑存储结构

create database test111 charset utf8mb4;
drop database test111;
表:表属性(元数据)、行、列+列属性

5、MySQL物理存储结构
库:/data/mysql/data里的目录
表:
MyISAM
user.frm 表结构(列、列属性)
user.MYD 数据记录
user.MYI 索引
InnoDB
time_zone.frm 表结构
time_zone.ibd 数据记录和索引
ibdata1 数据字典信息(元数据)

6、MySQL 存储数据分区
段:一个表
区:连续的64个页,1MB
页:连续的16KB

用户和权限管理

1、用户的作用
登陆、管理MySQL

2、用户的定义
username@‘白名单’

root@’%’
root@‘localhost’
root@‘127.0.0.1’
root@‘10.1.20.%’
root@‘10.1.20.2%’

3、用户的操作

增:create user xxdog@‘172.%’ identified by ‘123’;
查:select * from mysql.user;
改密码: alter user xxdog@‘172.%’ identified by ‘456’;
删:drop user xxdog@‘172.%’;

4、权限管理

权限列表:
ALL
with grant option

授权:
grant all on . to xxdog@‘10.1.20.2’ with grant option;

创建一个管理员用户root,可以通过10网段操作数据库:
grant all on . to root@‘10.0.0.%’ identified by ‘123’ with grant option;(identified by '123’代表新建用户)
创建一个应用用户xxdog:
grant insert, delete, update, select on . to xxdog@‘10.0.0.%’ identified by ‘123’;

回收权限:
show grants for xxdog@localhost;
revoke select, grant option on . from xxdog@localhost;

上一篇:OGG19.1 oracle12c到oracle12c经典模式配置实施


下一篇:数据库的安全性问题