广告
返回顶部
首页 > 资讯 > 数据库 >mysql删除表数据如何恢复
  • 893
分享到

mysql删除表数据如何恢复

2024-04-02 19:04:59 893人浏览 独家记忆
摘要

目录实验模拟恢复实战常用参数选项解释不常用选项 实验模拟 该实验必须是Mysql开启了binlog的情况。 binlog日志,即binary log,是二进制日志文件。它有两个作用, 一是增量备份,即只备份新增

实验模拟

该实验必须是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;

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

您可能感兴趣的文档:

--结束END--

本文标题: mysql删除表数据如何恢复

本文链接: https://www.lsjlt.com/news/117110.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • mysql删除表数据如何恢复
    目录实验模拟恢复实战常用参数选项解释不常用选项 实验模拟 该实验必须是mysql开启了binlog的情况。 binlog日志,即binary log,是二进制日志文件。它有两个作用, 一是增量备份,即只备份新增...
    99+
    2022-11-09
  • mysql数据误删除如何恢复
    如果MySQL数据误删除,可以尝试以下方法恢复:1. 使用备份:如果你有定期备份数据库,可以通过将备份文件还原到误删除之前的状态来恢...
    99+
    2023-10-09
    mysql
  • mysql删除的数据如何恢复
    在MySQL中,一旦数据被删除,它将无法直接恢复。因此,为了能够恢复删除的数据,你需要依赖备份和恢复机制。以下是一些可行的方法:1....
    99+
    2023-09-22
    mysql
  • mysql数据库数据删除如何恢复
    这篇文章将为大家详细讲解有关mysql数据库数据删除如何恢复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在mysql有时执行了错误的update或者delete时导致大...
    99+
    2022-10-18
  • 数据库中表和表数据如何删除恢复
    这篇文章主要介绍了数据库中表和表数据如何删除恢复,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 flashback table TABLE...
    99+
    2022-10-18
  • navicat删除的数据库表如何恢复
    要恢复在Navicat中删除的数据库表,您可以尝试以下方法:1. 使用Navicat的“还原数据库对象”的功能。打开Navicat,...
    99+
    2023-09-22
    navicat 数据库
  • Oracle误删除表数据后如何恢复
    Oracle误删除表数据后如何恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  Oracle误删除表数据后怎么快速恢复  一、undo...
    99+
    2022-10-18
  • MySQL数据库误删除后如何恢复
    这篇文章将为大家详细讲解有关MySQL数据库误删除后如何恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先,要确保mysql开启了binlog日志功能。...
    99+
    2022-10-18
  • oracle delete误删除表数据后如何恢复
    1、根据时间进行恢复 此种方式需要我们大致知道执行delete语句的时间。 查询系统当前时间:select to_char(sysdate,‘yyyy...
    99+
    2022-11-13
  • mysql误删除表怎么恢复
    当MySQL中的表被误删除后,有以下几种方法可以尝试恢复: 使用回收站功能(仅适用于 InnoDB 引擎):如果你使用的是 In...
    99+
    2023-10-27
    mysql
  • mysql误删除数据怎么恢复
    这篇文章主要介绍“mysql误删除数据怎么恢复”,在日常操作中,相信很多人在mysql误删除数据怎么恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql误删除数据怎么...
    99+
    2022-10-18
  • Mysql误删除数据库怎么恢复
    这篇文章主要讲解了“Mysql误删除数据库怎么恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql误删除数据库怎么恢复”吧! ...
    99+
    2022-10-18
  • plsql删除的数据如何恢复
    在PL/SQL中删除的数据无法直接恢复。一旦数据从数据库中删除,它们将无法恢复。然而,你可以通过以下方法尝试恢复数据:1.备份恢复:...
    99+
    2023-09-09
    plsql
  • oracle删除的数据如何恢复
    如果使用DELETE语句删除了数据,Oracle数据库是没有内置的恢复机制来撤销删除操作的。因此,一旦数据被删除,恢复数据的唯一方法...
    99+
    2023-08-31
    oracle
  • oracle如何恢复删除的表
    在Oracle数据库中,可以使用以下方法来恢复被删除的表:1. 使用回滚段恢复:如果表被删除后,数据库未提交事务或者事务回滚未完成,...
    99+
    2023-08-23
    oracle
  • 如何恢复navicat删除的表
    这篇文章给大家分享的是有关如何恢复navicat删除的表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysql数据库如果因为某些原因导致数据损坏或丢失,如果有备份我们可以把之前...
    99+
    2022-10-18
  • MySQL中恢复被误删除表数据的方法详解
    在MySQL数据库中,有时会发生误删除表数据的情况,这可能是由于操作失误、程序错误或者恶意攻击等原因导致的。当发生这种情况时,及时采取恢复措施是非常重要的,以防止数据的永久丢失。本文将详细介绍在MySQL中恢复被误删除表数据的方法,并提供相...
    99+
    2023-12-23
    mysql 数据库
  • Mysql数据库delete删除后数据恢复报告
    数据库环境部署与故障原因: 本次恢复的数据库安装在客户本地服务器上,服务器操作系统为windows2008 r2 。在当前环境内安装有mysql5.6单实例,引擎类型为innodb,表内数据存储所使用表空间...
    99+
    2022-10-18
  • MySQL数据库中怎么恢复误删除数据
    本篇文章为大家展示了MySQL数据库中怎么恢复误删除数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 找到binlog恢复数据的前提是必须开启Mysql的bi...
    99+
    2022-10-18
  • MySQL误删数据如何恢复
    如果在 MySQL 中误删了数据,可以通过以下几种方式进行数据恢复: 从备份中恢复数据:如果你有数据库的备份文件,可以将备份中的...
    99+
    2023-10-27
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作