看到这篇文章的你可能很着急,咱话就不多说了。
一、背景
操作失误,把数据库表全部删除了,然后我先用昨天的数据库备份文件还原到昨天的历史数据。
二、前提
使用mysqlbinlog恢复数据须知:
- 确保你已经开启了
Binlog
。
使用show variables like '%log_bin%';
命令查看是否已开启binlog功能。
如上图所示,你的binlog文件是在/var/lib/mysql/
目录下,以binlog
开头的文件。
三、保护数据
- 关闭业务系统,防止数据继续写入;
四、恢复数据
4.1 查看当前使用的binlog文件
show master status
4.2 执行flush logs
命令,让数据库从新的binlog
文件从新写
flush logs
4.3 恢复
查看/var/lib/mysql/
目录下的binlog文件,发现中间重启过mysql,昨天到今天使用的binlog文件有两个,所以得从两个文件进行恢复。
# 指定开始时间、结束时间
sudo mysqlbinlog /var/lib/mysql/binlog.000018 /var/lib/mysql/binlog.000019 --start-datetime='2021-08-27 09:50:00' --stop-datetime='2021-08-28 15:35:00' | mysql -u root -p --database=xiaofang_cloud -f
注意: 上面指定多个binlog文件的顺序很重要。
参考文章:
- MySQL – 常见的三种存储引擎;
- 尝试用binlog恢复mysql数据;
- 超级有用的15个mysqlbinlog命令;
- mysqlbinlog — Utility for Processing Binary Log Files;
- How to Restore data from binary log;
- MySQL 5.7 – 通过 BINLOG 恢复数据;
- mysql回滚到指定时间点;
- 无备份情况下恢复MySQL误删的表;
最新评论
我的是ipv4网络,如何使用直播源啊!
我今天试了,不想啊,我的是新疆昌吉移动的网络。
收不到验证码电报
现在充值29起了