mysql数据误删后的数据回滚

news/2025/1/11 15:05:59/文章来源:https://www.cnblogs.com/guixiangyyds/p/18518859

mysql数据误删后的数据回滚

第一步:下载MyFlash工具

# 创建文件夹
mkdir  /back_data
cd /back_data# 下载压缩包
wget https://codeload.github.com/Meituan-Dianping/MyFlash/zip/master # 安装编译相关软件
yum install gcc -y
yum install glib2 glib2-devel -y# 解压缩包
yum -y install unzip
unzip master# 进入软件目录
cd /back_data/MyFlash-master# 编译
sh build.sh#验证
cd binary
./flashback --help

如果显示

[root@localhost binary]# ll
总用量 7380
-rwxr-xr-x. 1 root root   87648 10月 31 14:20 flashback
-rwxr-xr-x. 1 root root 7463125 11月  5 2020 mysqlbinlog20160408
[root@localhost binary]# ./flashback --help
Usage:flashback [OPTION?]Help Options:-h, --help                  Show help optionsApplication Options:--databaseNames             databaseName to apply. if multiple, seperate by comma(,)--tableNames                tableName to apply. if multiple, seperate by comma(,)--tableNames-file           tableName to apply. if multiple, seperate by comma(,)--start-position            start position--stop-position             stop position--start-datetime            start time (format %Y-%m-%d %H:%M:%S)--stop-datetime             stop time (format %Y-%m-%d %H:%M:%S)--sqlTypes                  sql type to filter . support INSERT, UPDATE ,DELETE. if multiple, seperate by comma(,)--maxSplitSize              max file size after split, the uint is M--binlogFileNames           binlog files to process. if multiple, seperate by comma(,)--outBinlogFileNameBase     output binlog file name base--logLevel                  log level, available option is debug,warning,error--include-gtids             gtids to process. if multiple, seperate by comma(,)--include-gtids-file        gtids to process. if multiple, seperate by comma(,)--exclude-gtids             gtids to skip. if multiple, seperate by comma(,)--exclude-gtids-file        gtids to skip. if multiple, seperate by comma(,)[root@localhost binary]#

即安装成功!

第二步:开启binlog日志

#登录数据库 (一般或是mysql -uroot -p123456)
[root@localhost binary]# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.40 MySQL Community Server (GPL)Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>#查询binlog日志是否开启mysql> show variables%log_bin%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin                         | OFF   |
| log_bin_basename                |       |
| log_bin_index                   |       |
| log_bin_trust_function_creators | OFF   |
| log_bin_use_v1_row_events       | OFF   |
| sql_log_bin                     | ON    |
+---------------------------------+-------+
6 rows in set (0.01 sec)mysql> SHOW VARIABLES LIKE '%binlog_row_image%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| binlog_row_image | FULL  |
+------------------+-------+
1 row in set (0.00 sec)mysql>#开启binlog日志
#第一个:binlog_format=row [root@localhost ~]# cd /etc/
[root@localhost etc]# vim my.cnf[mysqld]
log-bin=mysql-bin
binlog_format=row
server_id=1#第二个:binlog_row_image=FULL。
#默认开启#重启mysqld
[root@localhost etc]# systemctl restart mysqld

第三步:检查第二步

[root@localhost etc]# systemctl restart mysqld
[root@localhost etc]# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.40-log MySQL Community Server (GPL)Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> SHOW VARIABLES LIKE '%binlog_row_image%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| binlog_row_image | FULL  |
+------------------+-------+
1 row in set (0.00 sec)mysql> show variables like '%log_bin%';
+---------------------------------+-----------------------------------------+
| Variable_name                   | Value                                   |
+---------------------------------+-----------------------------------------+
| log_bin                         | ON                                      |
| log_bin_basename                | /application/mysql/data/mysql-bin       |
| log_bin_index                   | /application/mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF                                     |
| log_bin_use_v1_row_events       | OFF                                     |
| sql_log_bin                     | ON                                      |
+---------------------------------+-----------------------------------------+
6 rows in set (0.00 sec)mysql>

第四步:开始测试

基础用法

# 查看所有binglog日志
SHOW MASTER LOGS;# 当前使用的日志
show master status;# 查看日志记录
show binlog events in '日志文件名';

建立测试表

create database if EXISTS itcast;use itcast;create table tb_user(id int(11) not null,name varchar(50) not null,sex varchar(1),primary key (id)
)engine=innodb default charset=utf8;insert into tb_user(id,name,sex) values(1,'Tom','1');
insert into tb_user(id,name,sex) values(2,'Trigger','0');
insert into tb_user(id,name,sex) values(3,'Dawn','1');

第五步:误删数据库

查看删库后的binlog

第六步:新建binglog,减少外来日志影响

之后立即flush logs; 生成新的binlog

由于我们执行 flush logs 命令新生了一个文件,所以我们执行的删除的命令应该在 binlog.000001 文件里面

查看具体的命令行

show binlog events in 'mysql-bin.000001';

得到数据恢复的起始位置为 120,结束位置为 1166

mysqlbinlog辅助恢复

接下来使用 mysqlbinlog 命令执行 binlog 文件,恢复数据,命令如下:

mysqlbinlog -v /application/mysql-5.6.40/data/mysql-bin.000001 --start-position=120 --stop-position=1166 | mysql -uroot -p123456

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/825686.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转]创建Visual Studio 2019离线安装包

可以在不同的网络环境和不同的计算机上在线安装微软Visual Studio 2019。微软提供的在线安装工具(Visual Studio web installer)可以让用户在线下载最新版本Visual Studio安装包、补丁程序等。但是在许多场景中,用户并不能连接到互联网,或者由于防火墙的安全策略导致用户不…

[论文阅读] High-Resolution Image Synthesis with Latent Diffusion Models

写在前面 原文:https://arxiv.org/abs/2112.10752 Github:https://github.com/CompVis/latent-diffusion?tab=readme-ov-file 参考:https://stable-diffusion-art.com/how-stable-diffusion-work/ 关键词:stable diffusion,LDMs 阅读理由:对DM高消耗的优化,解决速度问题…

2024 XCPC 哈尔滨 Chengdu 游记

电科你题出得好啊!CCPC Day -1 ​ 第一次坐飞机,起飞后世界瞬间变得好小,白云在我面前流过,河上的船一动不动. 随后出现的积云构成了冰川,剩余稀薄的云雾掩盖下面的城市,成为一片蓝色的海. 视线的尽头,我看到了被深蓝和浅蓝夹着的地平线. 今晚的月亮圆得像人造光源,…

vs code常见的查找快捷键大全

VS Code 提供了多种方法来查找和导航文件,包括快速打开文件、文件资源管理器、全局搜索、查找符号、查找文件中的文本、查找并替换、文件导航和使用命令面板。通过熟练使用这些方法,你可以提高开发效率,更快地找到和打开所需的文件。本文原文来自:vs code常见的查找快捷键大…

Vue全家桶–Vuex状态管理

什么是状态管理复杂的状态管理Vuex的状态管理

DBMS

StorageSrv DBMS ​ 在storagesrv上完成MariaDB数据库的安装,添加数据库root用户密码为000000 ​ 安装MariaDB 数据库服务器组件; ​ MariaDB数据库管理员信息:User: root/ Password: 000000; ​ 安装MariaDB WEB管理面板“phpMyAdmin”,通过apache 进行发布安装phpMyAdmin…

关于Copilot出现:You don`t have access to Github Copilot .....的问题解决方案

前面如何如何配置,以及如何如何上传学生证资料等我这里不赘述 bad endinghappy ending出现这个界面这个问题就是set_up不是很完全,设置一下就行disable改为enable等 这样再回去IDE,就可以正常使用了

什么是 Servlet

参考:Servlet 是用来做什么的?Servlet 技术的特点、ChatGPT简介 Servlet 是使用 Java 语言编写的运行在服务器端的程序。狭义的 Servlet 是指 Java 语言中的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。Servlet …

2024 暑假多校 做题记录

可以打一辈子 ACM 吗?代码链接 HDU7445 鸡爪 可以发现容易构造出 \(\lfloor\frac{n}{3}\rfloor\) 的上界。 对于字典序,只要考虑 \(n\) 是 \(3\) 的倍数的情形(对于 \(n\) 不是 \(3\) 的倍数的情形,只要将余出边的左端点设为 \(1\) 即可)。 因为要求字典序最小,自然考虑节…

猿人学web端爬虫攻防大赛赛题第16题——js逆向 - window蜜罐

题目网址:https://match.yuanrenxue.cn/match/16 解题步骤看触发数据包。明显m是经过特殊处理的,需要知道它的加密逻辑。看Initiator模块的window.request。m和t的赋值就在上面,打断点。先分析t。 r.t = p_s = Date[e(496)](new Date)[e(517)]() 将其中跟e相关的进行还原后,…

OBV量能指标的实战用法

OBV能量潮又称为平衡交易量,是由美国投资分析家葛兰碧在1981年创立的,它的理论基础是“能量是因,股价是果”。能量潮是将成交量数量化,制成趋势线,配合股价趋势线,从价格的变动及成交量的增减关系,推测市场气氛。其主要理论基础是市场价格的变化必须有成交量的配合,股价…