Windows下,MySql使用binlog恢复表和数据初级教程

来源:互联网 发布:9格拼图软件 编辑:程序博客网 时间:2024/05/21 10:34

今天给大家分享一个Windows下,MySql使用binlog恢复表和数据的初级教程!

首先开启binlog日志的功能

进到这个目录,"C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"

在my.ini的[mysqld]下面添加一行 log-bin = mysql-bin ,然后重启mysql服务,就可以了。如下图:

[mysqld]

# log-bin

log-bin = mysql-bin


一、新建一张测试表test

CREATE TABLE if not exists test (

id int UNSIGNED NOT NULL AUTO_INCREMENT ,

username VARCHAR(3) NOT NULL DEFAULT "张三" ,

PRIMARY KEY (`id`)

)

二、然后插入2条数据 ,查询看看

insert into test values(1,'张三');

insert into test values(2,'李四');

三、然后我们把数据备份到d盘,

  1. 打开windows的cmd窗口 进入到mysql的bin目录: cd C:\Program Files\MySQL\MySQL Server 5.7\bin

  2. 然后执行只备份test这张表的命令:mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=root edu test > "D:\test.sql"

四、这时模拟误操作(插入2条数据,然后删除数据库)

先插入

insert into test values(3,'王五');

insert into test values(4,'赵六');

再删除

truncate t;

drop table t;

五、这时,我们先用刚刚备份的test.sql文件来恢复下数据(肯定只能恢复前两条数据,因为我们是在后两条数据插入之前备份的)

1.用mysql -uroot -proot先登录mysql

2.然后执行导入test.sql的命令:

source d://test.sql

3.然后在查询下test表看下数据恢复过来没有

正常 数据恢复了,然后我们最后插入的那个王五,赵六没恢复成功。怎么办?只能用binlog咯。往下看,关键来了....

六、剩余的三条数据没有恢复过来,我们使用mysql的binlog日志来恢复

1.使用sql语句:show binlog events in 'mysql-bin.000001'; -- 查看binlog内容记录下开始位置和结束位置

2.然后进入到mysql的:C:\ProgramData\MySQL\MySQL Server 5.7\Data

cd C:\ProgramData\MySQL\MySQL Server 5.7\Data

3.用binlog命令备份到d盘 

mysqlbinlog --start-position=1142 --stop-position=1560 mysql-bin.000001 > d:\\test1.sql

4.然后使用开始位置和结束位置来恢复数据,执行以下命令

先登录到mysql 命令:mysql -uroot -proot

6.然后执行:source d://test1.sql (这里是用我们binlog备份的test1.sql去恢复数据哦)

最后在查询下test表,发现数据已经恢复了


版权声明:本文为博主原创文章,未经博主允许不得转载。