最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

mysqlbinlog通过日志文件恢复数据

来源:动视网 责编:小OO 时间:2025-10-04 05:21:14
文档

mysqlbinlog通过日志文件恢复数据

事由:mysql数据库文件被意外删除或覆盖,数据需要恢复前提:在利用日志恢复数据以前,我们需要知道我们的MYSQL服务器已经开启日志文件,通常情况下,我们可以使用命令showvariableslike'log_%';来查看是否存在可使用的日志文件mysql>showvariableslike'log_%';+---------------------------------+------------------------------------------------------------
推荐度:
导读事由:mysql数据库文件被意外删除或覆盖,数据需要恢复前提:在利用日志恢复数据以前,我们需要知道我们的MYSQL服务器已经开启日志文件,通常情况下,我们可以使用命令showvariableslike'log_%';来查看是否存在可使用的日志文件mysql>showvariableslike'log_%';+---------------------------------+------------------------------------------------------------
事由:mysql 数据库文件被意外删除或覆盖,数据需要恢复

前提:在利用 日志 恢复数据以前,我们需要知道我们的MYSQL服务器已经开启日志文件,通常情况下,我们可以使用命令 show variables like 'log_%'; 来查看是否存在可使用的日志文件

mysql> show variables like 'log_%';

+---------------------------------+------------------------------------------------------------------------+

| Variable_name                   | Value

+---------------------------------+------------------------------------------------------------------------+

| log_bin                    | ON

                           |

| log_bin_trust_function_creators | OFF

                           |

| log_error     | D:\\Program Files\\MySQL\\MySQL Server 5.5\\Datas\\Data\\PC2011071113yod.err                             |

| log_output                  | FILE

                           |

| log_queries_not_using_indexes | OFF

                           |

| log_slave_updates           | OFF

                           |

| log_slow_queries            | OFF

                           |

| log_warnings               | 1

                           |

+---------------------------------+------------------------------------------------------------------------+

注意蓝色部分,这里我们要看到的就是这一部分。

这时我们需要到我们的数据存储目录去查看是来有相应的日志文件,假设我们的数据配置文件(my.ini)中存在节点

[mysql]

Log-bin = mysql_bin

如果不存在,请自行配置好(如果你认为你有必要需要日志文件的话)。

这时在data目录中应该包含有  mysql_bin.000001 文件,如果中途有刷新日志文件,则还会生成mysql_bin.000002等更多文件。

到了这里我们可以确定我们的日志文件是存在的,那么我们就要根据数据进行分析恢复,假如我们只有一个日志文件,即 mysql_bin.000001,那么这个日志文件记录了我们从配置日志记录到现在的所有MYSQL数据操作,包括其增、删、改操作,我们现在要做的就是,将日志以.txt文档形式输出,以查看我们所需要的文件部分

实例:

1、打开命令行

2、输入 mysqlbinlog (如果环境变量中包括了这个目录,则会直接提示相关信息,否则提示无此命令,如果没有这个命令,我们可以直接到  MYSQL 的 BIN目录再运行此命令)。

3、详细命令 mysqlbinlog ../data/mysql_bin.000001 H:/001.txt;

4、这时我们就可以在H盘中找到001.txt分析我们所需要的内容了,这里我截取一部分数据,供大家参照。

# at 575

#120221 10:07:21 server id 1  end_log_pos 673     Query    thread_id=1    exec_time=0    error_code=0

SET TIMESTAMP=1329790041/*!*/;

insert into test values (6,'li')

/*!*/;

# at 673

#120221 10:07:21 server id 1  end_log_pos 700     Xid = 21

COMMIT/*!*/;

# at 700

#120221 10:24:57 server id 1  end_log_pos 771     Query    thread_id=1    exec_time=0    error_code=0

SET TIMESTAMP=1329791097/*!*/;

BEGIN

/*!*/;

# at 771

#120221 10:24:57 server id 1  end_log_pos 866     Query    thread_id=1    exec_time=0    error_code=0

SET TIMESTAMP=1329791097/*!*/;

delete from test where id = 3

/*!*/;

# at 866

#120221 10:24:57 server id 1  end_log_pos 3     Xid = 32

COMMIT/*!*/;

DELIMITER ;

DELIMITER /*!*/;

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

从上述数据中,我们能看到 在 # at 771 位置的时候,我执行了一次  删除数据 操作,那么现在我想要恢复原来所有的数据,这样的话我们就可以使用命令

Mysqlbinlog ../datas/data/mysql-bin.000001 --stop-pos=700 | mysql -uroot -proot

这样,我们省去了删除数据的那一行,所有的数据也是必然的能恢复正常了。

5、那么,如果我是中间执行了一次删除呢?

OK,没有关系,依然是需要用这种办法进行分析,我们只要想办法绕过这一行就可以了。于是我们可以增加  开始位置,如

Mysqlbinlog ../datas/data/mysql-bin.000001 --start-pos=576 --stop-pos=700 | mysql -uroot -proot

六、纵上几个步骤,我们就可以将已经删除或覆盖的数据进行恢复了,注意我们的前提条件。

文档

mysqlbinlog通过日志文件恢复数据

事由:mysql数据库文件被意外删除或覆盖,数据需要恢复前提:在利用日志恢复数据以前,我们需要知道我们的MYSQL服务器已经开启日志文件,通常情况下,我们可以使用命令showvariableslike'log_%';来查看是否存在可使用的日志文件mysql>showvariableslike'log_%';+---------------------------------+------------------------------------------------------------
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top