msyql数据库数据通过二进制日志恢复

1、mysql创建数据库指定编码

create database test default character set utf8 collate utf8_general_ci;

2、在mysql数据库中我们可以开启一些日志,来记录mysql数据库的操作信息。
Mysql日志主要分4类:
(1)二进制日志:记录所有更改数据的语句,可以用于数据的恢复。
(2)错误日志:记录mysql服务的启动、运行或停止服务时出现的问题。
(3)查询日志:记录建立的客户端连接和执行的语句。
(4)慢查询语句:记录所有执行时间超过long_query_time的所有查询或者没使用索引的查询。

这里我们主要学习二进制日志,为什么会有二进制日志?因为它可以最大可能地帮我们恢复数据库的一些数据,比如突然断电了、一不小心删错了数据,然而我们可以通过二进制日志可以恢复。
二进制日志默认是没有开启的,这就需要我们去开启。
1、设置启动二进制日志:
找到my.ini配置,在[mysqld]组下面添加以下内容:

log-bin="f://logs/mydb_log"
expire_logs_day=2
max_binlog_size=100M

log-bin:二进制日志存放的位置。
expire_logs_day:二进制日志自动删除的天数,默认是0——不自动删除。
max_binlog_size:一个二进制日志文件的大小限制,超过了这个值就会打开新的日志文件。范围:大于4096byte但小于1GB默认是1G。
2、重启mysql服务就可以了。
3、为了验证一下是否成功开启二进制日志,看下图操作,如果log_bin的值为on说明开启成功。

4、模拟恢复数据。
在我的mysql数据库中创建一张my表:
create table my(
id int primary key auto_increment,
name varchar(12)
)

 

往里面插入两条数据到My表中,数据如下:
insert into my values(1,'1111'),(2,'22222')

现在呢,我把这张my表删掉,然后通过二进制日志来恢复数据。

恢复数据操作:
【1】查看二进制日志文件:
规则:mysqlbinlog 日志存放位置
输入:mysqlbinlog f://logs/mydb_log.000001

在刚才打印出来的日志信息中我们可以找到我们之前创建my表的信息:

还有我们刚插入的数据信息:

那么现在我们可以根据这些信息来把数据恢复到之前某个状态。
规则:mysqlbinlog [option] filename |mysql –uuser –ppassword。
Option:可选项,--start-date、--stop-date、--start-position、--end-position分别表示恢复数据库的开始时间、结束时间、开始位置、结束位置。
输入命令:
mysqlbinlog --start-date="2018-01-06 15:10:07" --stop-date="2018-01-06 15:11:00" f://logs/mydb_log.000001|mysql -uroot -p123456

然后我们再去数据库中查看my表,发现有了,而且还有数据了。到此说明数据成功恢复了。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值