- 数据表文件
- 日志文件
- 系统文件(my.cnf | my.ini | mysql.sock)(mysql系统文件配置大全)
- 其他程序文件
数据表文件
查看数据库存在哪个文件
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年之前的二进制文件进行清空