MySQL日志文件恢复数据

查看MySQL日志文件存储位置

SHOW VARIABLES LIKE '%query%';

查看binlog是否开启:

show variables like 'log_bin';
show master status;
show master logs;

打开liunx 下的配置文件
/etc/my.cnf
添加
log-bin=mysql-bin 开启二进制文件

导出二进制文件 采用从节点4开始到3000结束

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqlbinlog --start-position=4 --stop-position=3000 "C:\ProgramData\MySQL\MySQL Server 5.7\data\mysql.000001" >c:\binlog.sql

导出二进制文件 采用utf8格式


mysqlbinlog  --set-charset=utf8 "C:\ProgramData\MySQL\MySQL Server 5.7\Data\mysql_bin.000001" >d:\binlog.sql

利用二进制起始时间恢复文件

mysqlbinlog "C:\ProgramData\MySQL\MySQL Server 5.7\Data\mysql_bin.000001" --start-datetime="2017-03-03 16:14:56"  --stop-datetime="2017-03-03 17:14:56" | mysql -uroot -p632013

利用二进制起始位置恢复文件

mysqlbinlog --start-position="3947" --stop-position="4055" "C:\ProgramData\MySQL\MySQL Server 5.7\Data\mysql_bin.000001" | mysql -uroot  -p632013

删除列于指定日志之前的所有日志,但不包括指定的日志:

purge binary logs to 'mysql-bin.000002';

删除2017-03-01 00:00:00时间点之前的日志:

purge binary logs before '2017-03-01 00:00:00';

刷新日志

flush logs;
reset master;  

设置日志过期天数

set GLOBAL expire_logs_days=7;

注意:当你误删一条数据,利用二进制日志恢复的时候你需要寻找的是 创建数据的那个节点(时间),而并非你删除数据的那个节点(时间)

当你回滚数据,回滚到删数据之前的数据库状态(只执行了stop-position 或者stop-datetime),那么在stop-position之后所有的数据库操作都将丢失所以你需要

  1. start-position stop-position 回滚单条被删数据

  2. 执行后续回滚的操作(避开删数据节点,往后面继续执行start-position stop-position )

关于利用二进制恢复文件还有很多解,果然知识海是无穷的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值