1.什么是数据库管理系统
DBMS
1) 管理数据
2)存储数据
2.数据库管理系统的类型
RDBMS 关系型数据库
mysql Oracle mariadb mssql
Nosql (非关系型数据库)
redis mongdb memcache elasticsearch
3.关系型数据库非关系型数据库功能性能对比
rdbms:强大的查询功能,二级索引,数据的强一致性
nosql 灵活性,可扩展,性能,支持分布式
4.特点对比
nosql 不适用sql语句 想做老大 先做好老二 并不想取代关系型数据库 是关系型数据库的补充
rdbms 二维表 支持sql语句 安全
5.mysql 版本选型规则
MySQL 5.6 GA 6-12 个月 小版本是偶数版本
mysql 5.7 GA 6-12个月 小版本是偶数版本 5.7.17版本以上(MGR:自带的高可用功能)
6. MySQL安装方式
yum rpm
编译安装(源码安装)
7.MySQL服务器模型
cs结构
客户端工具MySQL MySQLadmin mysqldump
8.连接方式
tcp/ip
MySQL -uroot -p123 -h 127.0.0.1
socket
mysql -uroot -p (默认socket 速度快不需要建立三次握手
nysql -uroot -p123 -s
mysql -uroot -p123 -hlocalhost
9什么是mysql实例
一个进程+多个线程+预分配的内存结构
10 mysqld的程序结构
连接层
- 验证用户的合法性
- 提供两种连接方式
- 提供一个与sql层交互的专用线程
sql层:
- 接收连接层传来的消息
- 检查语法
- 检查语义
- 解释器
- 优化器
- 执行器
- 缓存
- 记录日志binlog
存储引擎层:
- 接收sql层传来的sql语句
- 与磁盘交互查找数据文件,结构化成表形式返回给sql层
- 提供一个与sql层交互的线程,
11.MySQL的逻辑结构
库+表
表: 元数据+真实数据行
元数据: 列+其他属性
列:列名+约束
12. MySQL的物理结构
最底层的数据文件
13.段 区 页
段: 一个表就是一个段,有多个 区构成
区: 由多个页构成
页:最小单位 16k
分区表 一个区构成一个段 就是一个分区表
14 MySQL中 用户是如和定义的
用户名@主机域
主机域:
192.168.50.113
192.168.50.%
192.168.%.%
192.168.0.0/255.255.255.0
%
db01
localhost
127.0.0.1
15 mysql 修改密码
update
set
mysqladmin
grant
16脱敏 单例级别授权
grant select(user) on mysql.user to dev@'% identified by '123';
17.配置文件读取顺序
/etc/my.cnf
/etc/mysql/my.cnf
$basedir/my.cnf
defults-extra-file
~/.my.cnf
优先级: 5 4 3 2 1
18 优先级结论
命令行
default-file
配置文件
~/.my.cnf
defults-extra-file
$basedir/my.cnf
/etc/mysql/my.cnf。
/etc/my.cnf
cmak编译参数
19配置文件的作用
1.影响服务端的启动
2.影响客户端的连接
20多实例
多个进程+多个线程+多个 预分配内存结构
1.多个的端口
2.多个数据目录
3.多个socket文件
4.多个 日志文件
5多个server_id
第四章 MySQL客户端工具及SQL语句
1.客户端命令介绍
\h or help or ? 查看帮助文档 \G 格式化查询数据 \T or tee 记录日志基于session记录只记录当前会话窗口 用法:mysql> tee /var/log/myslq.log; \c 结束命令 \s 查看状态 \. or source 导入sql数据 \u or use 使用数据库 \q or exit or quit 退出 mysql> system ifconfig MySQL中执行linux命令
2mysqladmin
help命令的使用 mysql> help mysql> help contents mysql> help select mysql> help create mysql> help create user mysql> help status mysql> help show source命令的使用 #在MySQL中处理输入文件: #如果这些文件包含SQL语句则称为: #1.脚本文件 #2.批处理文件 mysql> SOURCE /data/mysql/world.sql #或者使用非交互式 mysql</data/mysql/world.sql mysqladmin 的使用 #查看MySQL存活状态 [root@db01 ~]# mysqladmin -uroot -p123 ping #查看MySQL状态信息 [root@db01 ~]# mysqladmin -uroot -p123 status #关闭MySQL进程 [root@db01 ~]# mysqladmin -uroot -p123 shutdown #查看MySQL参数 [root@db01 ~]# mysqladmin -uroot -p123 variables #删除数据库 [root@db01 ~]# mysqladmin -uroot -p123 drop DATABASE #创建数据库 [root@db01 ~]# mysqladmin -uroot -p123 create DATABASE #重载授权表 [root@db01 ~]# mysqladmin -uroot -p123 reload #刷新日志 [root@db01 ~]# mysqladmin -uroot -p123 flush-log #刷新缓存主机 [root@db01 ~]# mysqladmin -uroot -p123 reload #修改口令 [root@db01 ~]# mysqladmin -uroot -p123 password