06-mysql物理文件

  1. 数据表文件
  2. 日志文件
  3. 系统文件(my.cnf | my.ini | mysql.sock)(mysql系统文件配置大全)
  4. 其他程序文件

数据表文件

查看数据库存在哪个文件

show variables like '%datadir%';   #查看数据存放位置
show create table orders;          #查看创建表的sql

表结构存文件.frm 存储的是关于数据表的结构不包含索引结构 :主要是字段以及字段类型

数据存储文件myisam:

.MYD存放数据
.MYI存放索引
索引都是直接指向数据的位置:

数据存储文件innodb:

innodb: Btree 数据和索引基本是同一片区域中,innodb存储数据的方式就是通过B+ tree结构存,B+ tree结构的构成就是通过索引构成:数据会在树的根节点

.ibd 独享空间一个表一个空间

 ibdata1 共享空间  很多个表共享同一个空间


日志文件

查看日志是否开启

1.查询日志
5.事务日志
2.慢查询日志
6.中继日志
3.错误日志
4.二进制日志

show variables  like '%slow%';

1.查询日志query log

一般不建议开启,记录查询的-> select 使用主要是一些特殊SQL -记录的是所有的默认开启
2.慢查询日志(slow query log)
默认是不开启记录指定的超出某个时间执行的SQL (2s,3s)
作用:帮助我们在项目运行之后对于-些特定的SQL进行捕捉(执行慢的SQL) ;可以针对性的优化是项目运行过程中

配置文件配置:
 

slow_query_log=1                                      # 开启
slow-query-log-file=mysql-slow.log                    #文件名
long_query_time=3                                     #设置最大等待时间

show variables like '%slow%';                         #查看是否开启

SELECT SLEEP(5);                                      #测试

3.错误日志质 error.log

记录mysq|服务运行过程中产生的错误异常:异常不是指SQL执行的异常,是指服务异常

作用是在mysq|服务器意外停止运行的时候查错

4.二进制文件 (binary.log)

功能:会记录执行的SQL (update, delete, create, insert) 写操作

1.增量的数据备份及恢复
2.主从的数据同步

show variables like '%log_bin%'; #查看是否开启二进制文件
show master status;              #查看正在使用二进制文见
reset master;                    #重置二进制文件
show binlog events ;           # 查看二进制文件   默认第一个
show binlog events in "mysql-bin.000002";   #指定查询二进制文件
show binlog events\G;          # 可视化二进制
show binary logs;              #查询所有二进制文件
flush logs;                      #清空所有日志文件

事务是默认开启的。

二进制文件配置my.cnf文件:

log_bin=mysql-bin                 #只需设置这个参 数就可以开启mysq|l的binlog日志
server-id=1                       #mysql运行过程会一个服务的id ;系统会默认分配一-个服务的id;
binlog_format=mixed               #设置二进制文件显示格式

二进制开启后,服务重启会生成mysql-bin.000001、mysql-bin.index文件。

mysql-bin.000001 :记录的就是写操作的SQL会随服务 器的重启,会重新创建一个mysql-bin.00002
mysql-bin.index : 就是二进制的索引文件
也就是一个mysql-bin.000001就是记录的是当前mysq|服务所执行的sql;
每次服务重启都会新增mysql-bin.0000x,这样数据分摊,让这个文件不会因为一直使用这个文件过大

二进制恢复数据

根据节点恢复
mysqlbinlog --start-position= 154 --stop-position= 1225 /www/server/data/mysql-bin.000001 I mysql -u root ~p
根据时间恢复
mysqbinlog --start-datetime= " 2019-10-22 22:20:00" --stop-datetime=”2019-10-22 22:30:00" /www/server/data/mysql-b.n.00001 | mysql -uroot -P
也可以直接这样
mysqlbinlog /www/server/data/mjsql-in.00001 I mysql -u root p

5.事务日志(redo, undo) => mysq|第3,4次课
6.中级日志(reley log) => 主要是在主从中去做运用,同时这个文件会记录主节点的binlog中的信息,在从节点会根据这个文
件去恢复数据
mysql.sock文件如果出现异常:可以切换为
mysql -u root -p -h@27.0.0.1的连接方式


系统程序:

mysqld :启动mysq|服务
mysql:连接
mysqlbinlog:操作binlog日志文件,可以用来根据binlog恢复数据
mysqladmin:超级管理员使用的
mysqldump:是用来mysql进行数据备份的


二进制文件过大如何处理:?
1.定时把二进制文件备份到备份数据库中                                            (服务器资源足够不建议清空)
2.定时对于往期1年之前的二进制文件进行清空

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值