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

首先开启binlog日志的功能    进到这个目录 D:\worksoft\mysql\my.ini

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

[mysqld]
# log-bin
log-bin=D:/worksoft/mysql/log/mysqlbin

 一、新建一张测试表test并插入数据

CREATE TABLE if not exists test (
id int UNSIGNED NOT NULL AUTO_INCREMENT ,
username VARCHAR(3) ,
PRIMARY KEY (`id`)
);
insert into test values(1,'张三'),(2,'李四');
select * from test;

三、然后我们把数据备份到d盘,
打开windows的cmd窗口 进入到mysql的bin目录: cd  D:\worksoft\mysql\bin

然后执行只备份test这张表的命令(mybatis01 数据库名称  test 是表名):mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=root mybatis01 test > "D:\test.sql" 

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

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

再删除    truncate test;     drop table test;

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

1.用mysql -uroot -proot先登录mysql, 通过备份的test.sql文件来恢复数据

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

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

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

1.找到当前mysql记录的binlog文件:  show master logs

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

3.然后进入到mysql的binlog位置:   cd  D:\worksoft\mysql\log

4.用binlog命令备份到d盘(注意空格问题!!!)

mysqlbinlog --start-position=1895 --stop-position=2228 mysqlbin.000001 > d:\\test1.sql

5.然后使用开始位置和结束位置来恢复数据,执行以下命令首先登录到mysql 命令:mysql -uroot -proot 

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

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

MySQL存储对数据库改动的二进制文件,也就是记录了所有DDL与DML(select除外)语句, 使用binlog只能针对针对数据量不是很多的情况,真正的生产环境每个几个G的日志文件,不止是光靠binlog恢复的,还有更多的办法,在此只是做一个简单的学习记录! 

https://blog.csdn.net/chl191623691/article/details/78351768

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值