windows下mysql开启binlog日志及利用binlog日志恢复数据笔记

1、开启binlog日志。

找到mysql安装目录,打开配置文件my.ini

在[mysqld]下添加:

bin-log=mysql-bin

保存后重启mysql。此时在data目录会生成mysql-bin.000001和mysql-bin.index。

注意:MySQL每次重启服务会重新生成一个binlog二进制文件。

2、实验:

1、创建一个t1测试数据库。

create database t1;

2、创建一张测试表。

create table ceshi(id int not null);

3、分别插入三条数据。

windows下mysql开启binlog日志及利用binlog日志恢复数据笔记_第1张图片windows下mysql开启binlog日志及利用binlog日志恢复数据笔记_第2张图片

4、此时模拟服务器定期备份任务。(-l是备份期间只读,-F 刷新binlog日志,此时会重新生成一个binlog日志,名字是mysql-bin.000002)。

mysqldump -uroot -p***** t1 -l -F >ceshi.sql

5、此时向数据库中新插入三条数据。

windows下mysql开启binlog日志及利用binlog日志恢复数据笔记_第3张图片

6、模拟数据库破坏。

drop table ceshi;

windows下mysql开启binlog日志及利用binlog日志恢复数据笔记_第4张图片

7、此时数据库破坏后通过备份我们只能恢复备份那一刻的数据,但是在第五步新插入的三条数据不能通过备份恢复。可以通过binlog日志来恢复。

windows下mysql开启binlog日志及利用binlog日志恢复数据笔记_第5张图片

通过binlog恢复新插入的三条数据。

a、通过  mysqlbinlog --no-defaults binlog路径\mysql-bin.000002 |more可以看到我们后面插入的数据。他们的位置是188  270 352

windows下mysql开启binlog日志及利用binlog日志恢复数据笔记_第6张图片

所以我们只需要恢复到352即可。

mysqlbinlog --no-defaults --stop-position="352" 路径\mysql-bin.000002 |mysql -uroot -p**** t1

windows下mysql开启binlog日志及利用binlog日志恢复数据笔记_第7张图片

至此,利用binlog恢复数据完成。

你可能感兴趣的:(windows下mysql开启binlog日志及利用binlog日志恢复数据笔记)