返回顶部
首页 > 资讯 > 数据库 >利用MySQL的binlog恢复误删的数据库
  • 694
分享到

利用MySQL的binlog恢复误删的数据库

数据库mysqlsql 2023-09-23 21:09:59 694人浏览 安东尼
摘要

1 查看当前数据库内容并备份数据库 查看数据库信息: 备份数据库: [root@localhost ~]# mysqldump -u root -p t > /mnt/t.sqlEnter pass

1 查看当前数据库内容并备份数据库

查看数据库信息:
在这里插入图片描述

备份数据库:

[root@localhost ~]# mysqldump -u root -p t > /mnt/t.sqlEnter passWord: [root@localhost ~]# ll /mnt/t.sql -rw-r--r-- 1 root root 1771 Aug 25 11:56 /mnt/t.sql

2 开启bin_log功能

首先查看数据库是否开启bin_log功能

mysql> show variables like "%log_bin%";

在这里插入图片描述

需要修改Mysql的配置文件,/etc/的my.cnf,添加一句log_bin = mysql_bin即可
在这里插入图片描述
在这里插入图片描述

3 模拟误操作(插入3条数据,删除数据库)

mysql> insert into t1 values (3);Query OK, 1 row affected (0.00 sec)mysql> insert into t1 values (4);Query OK, 1 row affected (0.00 sec)mysql> insert into t1 values (5);Query OK, 1 row affected (0.00 sec)mysql> select * from t1;+------+| id   |+------+|    1 ||    2 ||    5 ||    4 ||    3 |+------+5 rows in set (0.00 sec)mysql> flush logs;Query OK, 0 rows affected (0.00 sec)mysql> show master status;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql_bin.000003 |      106 |              |                  |+------------------+----------+--------------+------------------+1 row in set (0.00 sec)

删除数据:

mysql> truncate t1;Query OK, 0 rows affected (0.00 sec)mysql> select * from t1;Empty set (0.00 sec)

此时突然数据库损坏或者人为删除

mysql> drop table t1;Query OK, 0 rows affected (0.00 sec)mysql> show tables;Empty set (0.00 sec)

4 数据恢复

1 用已经备份的/mnt/t.sql来恢复数据

mysql> source /mnt/t.sql;Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)mysql> show tables;+-------------+| Tables_in_t |+-------------+| t1          |+-------------+1 row in set (0.00 sec)mysql> select * from t1;+------+| id   |+------+|    1 ||    2 |+------+2 rows in set (0.00 sec)

2 还有三条数据没有恢复,怎么办。只能用bin-log来恢复

[root@localhost ~]# mysqlbinlog --no-defaults /var/lib/mysql/mysql_bin.000002 | mysql -u root -p123.com t
mysql> use t;Reading table infORMation for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select * from t1;+------+| id   |+------+|    1 ||    2 ||    3 ||    4 ||    5 |+------+5 rows in set (0.00 sec)mysql>

5 总结

备份数据

mysqldump -uroot -p123456 test -l -F '/tmp/test.sql'-l:读(只能读取,不能更新)-F:即flush logs,可以重新生成新的日志文件,当然包括log-bin日志

查看binlog日志

mysql>show master status;

导入之前备份数据

mysql -uroot -p t -v -f </mnt/t.sql-v查看导入的详细信息-f是当中间遇到错误时,可以skip过去,继续执行下面的语句

恢复binlog-file二进制日志文件

mysqlbinlog --no-defaults binlog-file | mysql -uroot -p t

从某一(367)点开始恢复

mysqlbinlog --no-defaults --stop-position="367" mysql-bin.000001| mysql -uroot -p t

先查好那一点,用more来查看

[root@localhost mysql]# /usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --start-position="794" --stop-position="1055" | more

然后恢复

[root@localhost mysql]# /usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --start-position="794" --stop-position="1055" | /usr/bin/mysql -uroot -p t

重置binlog日志

mysql> reset master;Query OK, 0 rows affected (0.01 sec)mysql> show master status;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 |      106 |              |                  |+------------------+----------+--------------+------------------+

mysql> flush logs;#关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。

来源地址:https://blog.csdn.net/qq_45228323/article/details/129977643

您可能感兴趣的文档:

--结束END--

本文标题: 利用MySQL的binlog恢复误删的数据库

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

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

猜你喜欢
  • 利用MySQL的binlog恢复误删的数据库
    1 查看当前数据库内容并备份数据库 查看数据库信息: 备份数据库: [root@localhost ~]# mysqldump -u root -p t > /mnt/t.sqlEnter pass...
    99+
    2023-09-23
    数据库 mysql sql
  • 如何利用MySQL的binlog恢复误删数据库详解
    目录1 查看当前数据库内容并备份数据库 2 开启bin_log功能 3 模拟误操作(插入3条数据,删除数据库) 4 数据恢复 5 总结 1 查看当前数据库内容并备份数据库 查看数据...
    99+
    2024-04-02
  • MYSQL Binlog恢复误删数据库详解
    对表误删或执行缺少条件的修改 SQL 导致修改了表内其他数据时,我们需要想办法将数据恢复回来。 先创建两个测试表 table_1 CREATE TABLE `table_1` ( `id` int(0) NOT N...
    99+
    2022-11-18
    MYSQL Binlog数据还原 MYSQL Binlog恢复数据
  • mysql通过binlog日志恢复误删数据
    1、先查看binlog功能是否开启 show variables like '%log_bin%'; log_bin为ON说明可以使用binlog恢复,如果为OFF说明没有开启binlog。 2、删...
    99+
    2023-09-06
    mysql 数据库
  • MySQL数据库误删恢复
    前言        经常听说删库跑路这真的不只是一句玩笑话,若不小心删除了数据库,事情很严重。你一个不小心可能会给公司删没。建议研发不要直连生成环境,一般的话都会分配账号权限,生产环境的账号尽量是只读,以防你一个不经意给库或表删除。一定...
    99+
    2023-09-02
    数据库 sql
  • Mysql的Binlog数据恢复:不小心删除数据库详解
    Mysql的Bin log数据恢复:不小心删除数据库 前言:因为不小心删除了测试机器上Mysql的一整个数据库Schema,因为是测试机所以没有做备份,现在通过MySQL的Bin log方式恢复到删除以前的...
    99+
    2024-04-02
  • MySQL 恢复误删数据
    文章目录 1、查看是否启用 binlog 日志2、查看所有 binlog 日志3、查看正在使用的日志4、查找日志所在文件夹5、log 日志转 sql6、delete 转 insert 恢复误删...
    99+
    2023-09-05
    mysql 数据库
  • MySQL使用mysqldump+binlog完整恢复被删除的数据库的方法
    这篇文章主要讲解了MySQL使用mysqldump+binlog完整恢复被删除的数据库的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。(一)概述在日常MySQL数据库运维过...
    99+
    2024-04-02
  • Mysql误删除数据库怎么恢复
    这篇文章主要讲解了“Mysql误删除数据库怎么恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql误删除数据库怎么恢复”吧! ...
    99+
    2024-04-02
  • mysql利用mysqlbinlog命令恢复误删除数据的实现
    实验环境: MYSQL 5.7.22  开启二进志日志 日志格式MIXED 实验过程: 执行:FLUSH LOGS; master-bin.000014 文件就是新生成的文件 刷新日志是为了实验内容更直...
    99+
    2022-05-23
    mysql mysqlbinlog恢复误删除 mysql mysqlbinlog 误删除
  • Mysql结合备份+binlog恢复误删除操作数据的方法
    小编给大家分享一下Mysql结合备份+binlog恢复误删除操作数据的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!结合备份...
    99+
    2024-04-02
  • mysql如何恢复误删的数据
    如果在MySQL数据库中误删了数据,可以通过以下几种方法来尝试恢复数据:1. 使用备份文件:如果你有数据库的备份文件,可以将备份文件...
    99+
    2023-08-11
    mysql
  • mysql怎么恢复误删的数据
    在MySQL中,如果误删了数据,可以通过以下方法恢复: 使用备份文件恢复数据:如果有备份文件,可以将备份文件中的数据恢复到数据库...
    99+
    2023-10-28
    mysql
  • MySQL的binlog如何恢复数据
    小编给大家分享一下MySQL的binlog如何恢复数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. binlogbinlo...
    99+
    2024-04-02
  • 详解:如何恢复MySQL数据库下误删的数据
    2017-03-27 09:25 阅读 178 评论 0作者:马哥Linux运维-Robin血的教训,事发经过就不详述了。直接上操作步骤及恢复思路(友情提示:数据库的任何操作都要提前做好...
    99+
    2024-04-02
  • MySQL数据库中怎么恢复误删除数据
    本篇文章为大家展示了MySQL数据库中怎么恢复误删除数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 找到binlog恢复数据的前提是必须开启Mysql的bi...
    99+
    2024-04-02
  • MySQL数据库误删除后如何恢复
    这篇文章将为大家详细讲解有关MySQL数据库误删除后如何恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先,要确保mysql开启了binlog日志功能。...
    99+
    2024-04-02
  • 使用lsof回恢复被误删的mysql数据库文件
    下文主要给大家带来使用lsof回恢复被误删的mysql数据库文件,希望这些内容能够带给大家实际用处,这也是我编辑使用lsof回恢复被误删的mysql数据库文件这篇文章的主要目的。好了,废话不多说,大家直接看...
    99+
    2024-04-02
  • mysql如何利用binlog进行数据恢复详解
    前言 最近线上误操作了一个数据,由于是直接修改的数据库,所有唯一的恢复方式就在mysql的binlog。binlog使用的是ROW模式,即受影响的每条记录都会生成一个sql。同时利用了binlog2sql项...
    99+
    2024-04-02
  • MySQL误删数据如何恢复
    如果在 MySQL 中误删了数据,可以通过以下几种方式进行数据恢复: 从备份中恢复数据:如果你有数据库的备份文件,可以将备份中的...
    99+
    2023-10-27
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作