mysql的管理模式_mysql的体系管理

(一)使用systemd管理mysql服务

1.源码包步骤

#编辑脚本文件

[root@db02 scripts]# vim /usr/lib/systemd/system/mysqld.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

2.二进制包步骤

#编辑脚本文件

[root@db02 scripts]# vim /usr/lib/systemd/system/mysqld.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

#修改mysql配置文件

[root@db02 mysql]# vim /etc/my.cnf

basedir = /application/mysql

datadir = /application/mysql/data

#启动MySQL并加入开机自启

[root@db02 mysql]# systemctl start mysqld

[root@db02 mysql]# systemctl enable mysqld

c391a71896ee8528440b49f29d944c98.png

(二)mysql连接方式

1.第一种连接方式

​ TCP/IPL连接

dfecc762d8e869830b5499efd765d3bf.png

2.第二种连接方式

socket连接

8f51b576af2403b4bb4ab62150e63db1.png

问题

mysql ----------------> socket连接

mysql-uroot-p123-h127.0.0.0.1-----------> tcp连接

mysql -uroot -p123-hlocalhost------------> socket连接

mysql -uroot -p123-h127.0.0.1 -S/tmp/mysql.sock--------->tcp连接

总结:

1.不一定-h都是TCP连接,-hlocalhost 是socket连接

2.不一定-s都是socket连接,如果前面加了-h一定是TCP

3.mysql默认使用的是socket

为什么要默认是socket连接???

1.安全

2.速度快,因为用tcp的话会使用三次握手,socker不用

(三)MySQL体系结构管理

mysql的客户端:

mysql

mysqldump

mysqladmin

第三方工具:

phpmyadmin

navicat

sqlyog

mysqld一个二进制程序,后台的守护进程

单进程

多线程

(四)MySQL服务器构成

1.实例

5927a31a16241d72a64510232aa9334c.png

比如打开一个word文档,任务管理器会有进程,如果退出word文档则进程会结束

比如有一个word文档他里面有2个G的内存,然而,电脑的总内存有16G,并且已经使用了15.9G ,这时,我想打开这个2个G的的文档,他是打不开的,并且中间他会一直在等,如果没有释放内存的话就会报错,

0ea6491926afcf290e0dc3fc41bf92e7.png

2.MySQL的连接方式

mysqld程序结构

1.连接层

2.SQL层

3.存储引擎层

同理mysql打开方式

791e35424602c162696ef7694b853804.png

我有2个G的表,但是在linux中是可以打开的,因为Linux他会与分配给mysql 8个G 所以2个G的表是可以打开的

2c75be1713af709b495ce35d0a0aa96f.png

总结

- 1.MySQL的后台进程+线程+预分配的内存结构。

- 2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内存结构供MySQL处理数据使用。

就是windows 他没有预分配的内存结构

linux 有预分配的内存结构

关于连接层

e3a7719b2957f3ac7d2f96463294ae4a.png

1.验证用户的合法性(用户名,密码,主机域(主机号)黑名单,白名单)

2.提供两种方式 (TCP/IP,socket) -h -s

3.提供一个和SQL层交互的专用线程

SQL层

2884a022accd196a9c67c474a43966ca.png

1.接收连层传来的SQL语句

2.检查语法

3.检查语义

4.解析器 解析SQL语句,生成多种执行计划

5.优化器,在多种执行计划中选择最后的一种优化方式

6.执行器种执行SQL语句

6.1提供一个与存储引擎层交互的线程

6.2接收存储引擎返回结构化的成表数据

7.写缓存(redis,memcache)

8.记录日志 binlog

存储引擎层

11838398.html

1.接收SQL层传来的最有的SQL语句

2.与磁盘交互,拿到数据,并结构化成表格,返回给SQL层

3.提供一个与SQL层交互的线程

(五)MySQL的结构

1.逻辑结构

(MySQL的逻辑结构,就是数据库管理员的操作对象)

表:(真实数据+元数据)

元数据:用来描述真实数据的数据(列+其它属性(行数+占用空间大小+权限))

列:列名字+数据类型+其他约束(非空、唯一、主键、非负数、自增长、默认值)

2.物理结构

MySQL的物理结构是最底层的数据文件

-rw-rw---- 1 mysql mysql 12982 Oct 30 16:49 innodb_index_stats.frm

-rw-rw---- 1 mysql mysql 98304 Oct 31 16:34 innodb_index_stats.ibd

-rw-rw---- 1 mysql mysql 10684 Oct 30 16:49 user.frm

-rw-rw---- 1 mysql mysql 712 Oct 31 15:55 user.MYD

-rw-rw---- 1 mysql mysql 2048 Oct 31 16:03 user.MYI

3.MySQL的单位段

段就是一张表,是由多个区构成

区:区是由多个页构成

页:最小单位,16k为一页

分区表:分区表就是一个区构成一个段也就是一个表,就是分区表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值