binlog日志简介:
binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。
binlog日志包括两类文件:
1)二进制日志索引文件(文件名后缀为.index):用于记录所有的二进制文件;
2)二进制日志文件(文件名后缀为.00000*):记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。
binlog日志对于mysql数据库来说是十分重要的。在数据丢失的紧急情况下,可以尝试用binlog日志功能进行数据恢复操作。
正是由于binlog日志以上的特性,在实际的案件取证中也可以通过binlog日志来恢复删除数据。
要通过binlog日志恢复mysql数据库删除数据的前提:binlog日志确定是开启的。
查看binlog日志是否开启,有以下三种方法
方法一:
打开MySQL数据库的配置文件(windows系统中的配置文件为my.ini,一般在安装目录的根目录下;Linux系统中配置文件为my.cnfmysql截取,一般在/usr/local/mysql/etc/目录下),在配置文件中查看log-bin=MySQL-bin有没有被注释掉(每行第一个字符为#号表示该行被注释),若没被注释表示开启,若被注释表示没有开启。
方法二:
在MySQL命令行下使用show variables like ‘log_bin’;命令查看binlog日志是否开启,Value的值为ON表示开启,为OFF表示关闭。
方法三:
在存放数据库的文件夹中是否存在mysql-bin.000001类似的文件,有则表示binlog日志功能是开启的。
在数据恢复过程中会用到的binlog日志操作命令
1、查看所有binlog日志列表:
在mysql命令界面输入命令: mysql> show master logs
2、查看master状态,即最后(最新)一个binlog日志的编号名称及其最后一个操作事件pos结束点(Position)值:
在mysql命令界面输入命令: mysql> show master status
3、刷新log日志mysql截取,自此刻开始产生一个新编号的binlog日志文件:
在mysql命令界面输入命令:mysql> flush logs
注:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志
4、重置(清空)所有binlog日志:
在mysql命令界面输入命令:mysql> reset master
如何读取binlog日志中的内容?
1、使用mysqlbinlog自带查看命令法:
注: binlog是二进制文件,普通文件查看器cat more vi等都无法打开,必须使用自带的 mysqlbinlog 命令查看binlog日志与数据库文件在同目录中。
Mysql安装路径下的bin文件夹下输入以下命令:
C:xamppmysqlbin>mysqlbinlog C:xamppmysqldatamysql-bin.000009
2、上面这种办法读取出binlog日志的全文内容较多,不容易分辨查看pos点信息,这里介绍一种更为方便的查询命令在MySQL的命令界面:
在mysql命令界面输入:mysql> show binlog events [IN ‘log_name’] [FROM pos] [LIMIT [offset,] row_count]
选项解析↓
IN ‘log_name’:指定要查询的binlog文件名(不指定就是第一个binlog文件)
FROM pos:指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
LIMIT [offset,]:偏移量(不指定就是0)
row_count:查询总条数(不指定就是所有行)
删除数据案例及操作步骤:
下面我们通过一个实例操作来完整查看「如何通过binlog日志恢复MySQL数据库删除数据。
案例介绍:
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688