关于mysql数据库恢复的方法(备份与二进制日志mysqlbinlog)

Mysqldump备份数据库:

一般来说,防止数据丢失最好的方法就是备份一个数据库,我们在mysql数据库中可以用mysqldump工具进行备份

首先我们用create database test;创建一个数据库叫做test的数据库

678265e7c8114c95bd61104c9863e322.png

 

 

然后我们use这个数据库use test;

 

94f0a0642e0d4c8ca37b08beb2365282.png

 

使用
create table Student(Sno int not null auto_increment primary key,Sname varchar(10) not null,Sex char(1) not null, Sage tinyint(100) not null, Sdept char(4) not null)comment = '学生表;

创建一个名为Student的表

ebe29d5087b344a78dec450b5b1fc0d9.png

 

并show tables;看看是否创建成功

4ea1009c762c4495be4869761809dbf4.png

 

然后我们开始使用mysqldump备份test数据库成/root目录下的1.sql文件,使用mysqldump test > /root/1.sql备份

0b6860a4f106498a88d3c4b4477dd0ac.png

 

我们cd到root用ls可以看到生成了一个1.sql

a36a8c24254a42519c8e2ad5e8eb48dc.png

 

开始恢复数据库:

我们create回一个名为test的数据库

0d6803dc90e9496da8649f0651665f0c.png

 

用use进入到test数据库

ea1f269512604726a2116de8b99f0546.png

 

使用source命令导入备份的数据库文件1.sql  source 1.sql;

0512c4139cb44a1da65aada12a540d77.png

 

show tables; 看到恢复成功

a2472b0a5d12408293634519131f54bf.png

 

 

使用mysqlbinlog恢复数据库:

虽然备份可以很快速的恢复数据库,但是我们不可能无时无刻的都在备份,一些没有备份到的文件就可以用mysqlbinlog,通过二进制日志文件恢复。

打开二进制日志记录,通过在/etc/mysql下的my.cnf文件下的[mysqld]字段加入log-bin=mysql-bin就可以开启(没有[mysqld]可以自己添加)

然后在mysql使用show binary logs;可以看到生成了二进制日志文件

1ea86733f807492889461ee0c6cd0f24.png

 

再多生成一个表t1 create table t1 (id serial);

f0c1dfaea7414bb3baea5d127f726bf6.png

 

show tables

8cf1627a39d04a9da05dfae1e6c7158f.png

 

再次drop datebase test

开始恢复:

create datebase test; 创建回一个库

然后use test数据库后source /root/1.sql恢复备份的文件

Show tables;可以看到只有我们前一次备份的内容Student

4176d99f72d14a58a0c0cea176a0881d.png

 

打开一个终端,进入到/etc/lib/mysql下,使用mysqlbinlog mysql-bin.000001 > cat.sql创建一个明文的日志文件cat.sql,通过cat可以看到日志

d5167336c1314ba388dbf63f0fce0825.png

 

可以看到515处使用了drop,但实际上drop是从473开始的,所以我们要去除473以后的操作,使用

mysqlbinlog --stop-position=473 mysql-bin.000001 > fallback.sql

生成一个用于恢复数据的sql文件

在mysql中使用source /etc/lib/mysql/fallback.sql恢复数据,然后show tables;可以看到表t1恢复了

3451df406b354b30b364bc5ee27b038e.png

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值