我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql删除表数据如何恢复

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql删除表数据如何恢复

实验模拟

该实验必须是mysql开启了binlog的情况。

binlog日志,即binary log,是二进制日志文件。它有两个作用,

  • 一是增量备份,即只备份新增的内容;
  • 二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据。

我们可以通过binlog日志恢复数据

查看mysql是否开启binlog语句

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin    | OFF  |
+---------------+-------+
1 row in set (0.01 sec)

如果是OFF,则说明没有开启binlog。可以使用如下方法开启binlog

编辑/etc/my.cnf文件,在文件后面增加如下两行代码即可

server-id=1
log-bin=/var/lib/mysql/mysql-bin

server-id表示单个结点的id,这里由于只有一个结点,所以可以把id随机指定为一个数,这里将id设置成1。若集群中有多个结点,则id不能相同

第二句是指定binlog日志文件的名字为mysql-bin,以及其存储路径

重启让配置生效。

[root@localhost ~]# systemctl stop mysqld.service
[root@localhost ~]# systemctl start mysqld.service
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin    | ON  |
+---------------+-------+
1 row in set (0.01 sec)

创建数据库,即相关表

CREATE DATABASE `hbk` DEFAULT CHARACTER SET utf8 ;
use hbk;
CREATE TABLE `t_delete_test` (
 `id` int(11) NOT NULL,
 `name` varchar(30) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

插入相关测试数据,在这里,我使用客户端工具插入的,也可以使用手工执行insert into语句。

mysql删除表数据如何恢复

模拟数据库误删除操作,把id从1-4的数据不小心删除,只留唐僧师徒4人,然后如何恢复所有数据。

mysql> delete from t_delete_test where id<=4;
Query OK, 4 rows affected (0.01 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

恢复实战

由于在/etc/my.cnf配置了binlog,这个日志会存储插入,删除,修改的日志信息

mysql删除表数据如何恢复

mysql > show binlog events in 'mysql-bin.000001'\G

mysql删除表数据如何恢复

mysql删除表数据如何恢复

在3101的时刻进行了delete操作,从704建表之后的操作开始恢复

[root@localhost mysql]# /usr/bin/mysqlbinlog /var/lib/mysql/mysql-bin.000001 --start-position=704 --stop-position=3101 |mysql -uroot -p hbk

执行之后,成功恢复了之前删除的数据。

mysql删除表数据如何恢复

常用参数选项解释

  • --start-position=875 起始pos点
  • --stop-position=954 结束pos点
  • --start-datetime="2016-9-25 22:01:08" 起始时间点
  • --stop-datetime="2019-9-25 22:09:46" 结束时间点
  • --database=zyyshop 指定只恢复zyyshop数据库(一台主机上往往有多个数据库,只限本地log日志)

不常用选项 

  • -u --user=name 连接到远程主机的用户名
  • -p --password[=name] 连接到远程主机的密码
  • -h --host=name 从远程主机上获取binlog日志
  • --read-from-remote-server 从某个MySQL服务器上读取binlog日志

a)查询第一个(最早)的binlog日志:

mysql> show binlog events\G;

b)指定查询 mysql-bin.000002这个文件:

mysql> show binlog events in 'mysql-bin.000002'\G;

c)指定查询 mysql-bin.000002这个文件,从pos点:624开始查起:

mysql> show binlog events in 'mysql-bin.000002' from 624\G;

d)指定查询 mysql-bin.000002这个文件,从pos点:624开始查起,查询10条(即10条语句)

mysql> show binlog events in 'mysql-bin.000002' from 624 limit 10\G;

e)指定查询 mysql-bin.000002这个文件,从pos点:624开始查起,偏移2行(即中间跳过2个),查询10条

mysql> show binlog events in 'mysql-bin.000002' from 624 limit 2,10\G;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql删除表数据如何恢复

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql数据删除如何恢复

恢复被删除的 mysql 数据需要管理员权限,步骤如下:确定要恢复的数据。检查二进制日志并提取相关查询。导入提取的查询。恢复意外重启前的数据。检查数据库备份并从备份中恢复数据。MySQL 数据删除恢复如何恢复被删除的 MySQL 数据?
mysql数据删除如何恢复
2024-04-14

mysql删除表如何恢复

要恢复被删除的MySQL表,有几种方法可以尝试:使用备份:如果您在删除表之前对数据库进行了备份,那么您可以从备份中恢复被删除的表。您可以使用MySQL自带的工具,如mysqldump或MySQL Workbench,来创建和恢复备份。使用二
mysql删除表如何恢复
2024-04-12

mysql数据库删除如何恢复

在 mysql 中,已删除的数据无法直接恢复,但可以通过以下几种方法尝试恢复:从备份恢复:如定期备份数据库,可还原备份恢复数据。使用恢复工具:专用恢复工具可尝试扫描数据库恢复已删除数据。查找二进制日志:启用了二进制日志记录时,可通过解析日志
mysql数据库删除如何恢复
2024-06-15

mysql数据误删除如何恢复

如果MySQL数据误删除,可以尝试以下方法恢复:1. 使用备份:如果你有定期备份数据库,可以通过将备份文件还原到误删除之前的状态来恢复数据。2. 使用二进制日志(binary log):MySQL的二进制日志记录了数据库的所有操作,包括删除
2023-10-09

mysql删除的数据如何恢复

在MySQL中,一旦数据被删除,它将无法直接恢复。因此,为了能够恢复删除的数据,你需要依赖备份和恢复机制。以下是一些可行的方法:1. 使用备份:如果你有数据库的备份文件,可以使用备份文件进行恢复。将备份文件导入到一个新的数据库中,并从中提取
2023-09-22

mysql删除表后如何恢复

如果您在MySQL数据库中意外删除了表,您有几种方法可以尝试恢复:使用备份:如果您有数据库的备份,您可以将备份文件恢复到一个新的数据库,然后从备份中导出您需要的表。使用回收站:MySQL 5.1.6及更高版本支持回收站功能。您可以检查是否启
mysql删除表后如何恢复
2024-04-09

mysql数据库表数据删除怎么恢复

mysql 数据删除恢复方法:从备份中恢复:还原已创建的数据库备份。恢复日志恢复:使用启用的恢复日志记录来解析并恢复数据。undo 日志恢复:回滚 undo 日志以恢复已删除的数据。第三方工具恢复:利用第三方工具恢复已删除的数据。注意:恢复
mysql数据库表数据删除怎么恢复
2024-08-05

navicat删除的数据库表如何恢复

要恢复在Navicat中删除的数据库表,您可以尝试以下方法:1. 使用Navicat的“还原数据库对象”的功能。打开Navicat,连接到数据库服务器,右键点击数据库,选择“还原数据库对象”,然后选择要恢复的数据库表并点击“确定”。2. 如
2023-09-22

mysql数据库被删除如何恢复

mysql 数据库删除后如何恢复如何恢复已删除的 MySQL 数据库?当意外删除 MySQL 数据库时,可以采取以下步骤进行恢复:1. 停止 MySQL 服务停止 MySQL 服务以防止对数据库进行任何进一步的更改。2. 找到数据
mysql数据库被删除如何恢复
2024-06-15

mysql怎么恢复刚删除的表数据

快速恢复刚删除的表:使用 flush logs 和 alter table 命令。深度恢复较长时间删除的表:满足条件(二进制日志启用、事件记录)、确定事件日志位置、转储日志、编辑 sql 文件、应用 sql 文件。如何在 MySQL 中恢复
mysql怎么恢复刚删除的表数据
2024-04-14

oracle删除数据如何恢复

oracle 中已删除的数据可通过以下方式恢复:撤销操作,适用于尚未提交的事务;闪回查询,允许查看指定时间点的数据状态;闪回表,恢复整个表至指定时间点;数据泵导入,需要之前的导出备份;手动数据修复,复杂且耗时,需要专业知识。Oracle 数
oracle删除数据如何恢复
2024-04-19

mysql删除数据怎么恢复

已删除的 mysql 数据可以通过三种方法恢复:从备份恢复、使用 mysql 二进制日志或使用磁盘恢复工具,需注意数据未被覆盖,在操作前备份数据库。MySQL 数据恢复:删除数据的补救措施如何恢复已删除的 MySQL 数据?已删除的 M
mysql删除数据怎么恢复
2024-05-30

DBeaver误删除数据如何恢复

在DBeaver中误删数据后,可以尝试以下方法恢复数据:撤销删除操作:在DBeaver中,可以尝试使用撤销操作来恢复误删的数据。可以尝试按下Ctrl + Z组合键或者通过菜单栏的Edit -> Undo选项来撤销最近的删除操作。恢复数据库备
DBeaver误删除数据如何恢复
2024-04-09

navicat删除表数据怎么恢复

已删除的表数据可以通过以下步骤进行恢复:备份还原:若有备份,可直接还原。使用日志文件:右键单击日志文件,选择“恢复”。使用第三方工具:例如 mysql recovery tool 或 stellar data recovery for my
navicat删除表数据怎么恢复
2024-04-24

编程热搜

目录