因为有的时候会出现,突然哪个字段或者表格之类被删除,我们要了解到底什么内容,什么时候,是谁删的,那我们就可以从binlog日志中查找到你需要的内容
1. binlog
binlog就是二进制日志,它记录了数据库上的所有改变,并以二进制的形式保存在磁盘中;
它可以用来查看数据库的变更历史,数据库增量备份和恢复,MySQL的复制(主从数据库的复制)。
因为每一条被修改数据的sql都会记录在binlog中。
2 .查看与配置binlog格式
(1)查看binlog_format
mysql>, show variables  like “binlog_format”;
+ - - - - - - - - - - - - - - - - - - - - - - - - - +
| |,Variable_name Value |
+ - - - - - - - - - - - - - - - - - - - - - - - - - +
| |,binlog_format ROW , |
+ - - - - - - - - - - - - - - - - - - - - - - - - - +
1,row set 拷贝;(0.01,sec)
binlog格式
binlog有三种格式:声明,行以及混合。
——基于SQL语句的复制(statement-based 复制、SBR),
——基于行的复制(row-based 复制,RBR),
——混合模式复制(mixed-based 复制,MBR)。
所以日志格式可以修改
如:mysql 祝辞,set globle binlog_format=盎旌稀?
3. binlog开启与查看,删除
看看binlog有没有开启
mysql>, show variables  like “log_bin”;
+ - - - - - - - - - - - - - - - - - - - - - - - - - +
| |,Variable_name Value |
+ - - - - - - - - - - - - - - - - - - - - - - - - - +
|,log_bin ,,,,,, |,提醒,,|
+ - - - - - - - - - - - - - - - - - - - - - - - - - +
1,row set 拷贝;(0.01,sec)
4 .查看binlog文件列表
mysql>, show binary 原木;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
|,Log_name ,,,,,,,,,,,,, |, File_size |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
| |,mysql-bin-db02.000001 ,, 98131952 |
| |,mysql-bin-db02.000002 ,,,,,, 4954 |
| |,mysql-bin-db02.000003 拖延,248051834 |
| |,mysql-bin-db02.000004 ,, 22305210 |
| |,mysql-bin-db02.000005 ,,,,,,, 177 |
| |,mysql-bin-db02.000006 ,,,,,,, 913 |
| |,mysql-bin-db02.000007 1075503915 |
| |,mysql-bin-db02.000008 拖延,101154053 |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
8,rows set 拷贝;(0.00,sec)
5 .查看当前正在写入的binlog文件
mysql>, show master 原木;
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
|,Log_name ,,,,,,,,,,,,, |, File_size |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
| |,mysql-bin-db02.000001 ,, 98131952 |
| |,mysql-bin-db02.000002 ,,,,,, 4954 |
| |,mysql-bin-db02.000003 拖延,248051834 |
| |,mysql-bin-db02.000004 ,, 22305210 |
| |,mysql-bin-db02.000005 ,,,,,,, 177 |
| |,mysql-bin-db02.000006 ,,,,,,, 913 |
| |,mysql-bin-db02.000007 1075503915 |
| |,mysql-bin-db02.000008 拖延,101481837 |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
8,rows set 拷贝;(0.00,sec)
说明都在用
6 .只查看第一个binlog文件的内容
mysql 祝辞,show binlog 事件
7 .查看指定binlog文件的内容
mysql 祝辞,show binlog  events 拷贝“mysql-bin.000002”;
8。查看当前正在写入的binlog文件
mysql 祝辞,show master 地位\ G
9 .获取binlog文件列表
mysql 祝辞,show binary 原木;
10。用mysqlbinlog工具查看
注意:
不要查看当前正在写入的binlog文件
不要加——力参数强制访问
如果binlog格式是行模式的,请加,vv参数
为了不影响正在使用的数据库,我就在另外一台架设的数据库上查看
基于开始/结束时间
mysqlbinlog ——start-datetime=' 2017 - 05 - 10,就是的,——stop-datetime=' 2017 - 09 - 10, 01:01:01’, -d 库名,二进制文件
注:因为我的mysql binlog就格是行式的,所以需要添加vv参数
mysqlbinlog ——start-datetime=' 2016 - 12 - 20, 09:27:54”,——stop-datetime=' 2016 - 12 - 20, 09:30:40’, -vv MySQL-binlog.000001 祝辞/根/1. log ,,,,制定库名的,-d db1
基于pos值
mysqlbinlog ——起始位置=107,停止位置=1000,-d 库名,二进制文件
12。远程查看
指定开始/结束时间,并把结果重定向到本地t.binlog文件中
mysqlbinlog -u  username -p password  -h 172.16.22.7 -P3306 \
——read-from-remote-server start-datetime=' 2017 - 05 - 10, 23:00:00”,——stop-datetime=' 2017 - 09 - 10, 23:30:00’, mysql-bin.000001 祝辞t.binlog
根据t。binlog里面的内容便可查看是有什么语句操作了什么,是谁操作的。