mysql二进制日志文件恢复数据库

2019-01-05 10:06:15王冬梅

在命令行中输入mysqlbinlog D:binary-log.000003 > D:log.txt,执行后打开log.txt,

查看里面语句,可以发现:在每个操作之前,都会有一个独特的编号,如下红字显示:

/*!*/; # at 450 /*编号450*/ #110402 15:31:50 server id 1 end_log_pos 529 Query thread_id=2 exec_time=0 error_code=0 SET TIMESTAMP=1301729510/*!*/; DROP TABLE `jwc`

此编号随着操作数增多而变大。和时间一样是一个标记,通过操作点恢复的语句如下:

mysqlbinlog --stop-position="450" mysql安装目录databinary-log.000001  | mysql -u root –p

这样,系统会自动执行二进制日志中编号最低的语句到编号450语句。

与stop-position对应的,还有start-position属性,可以设定执行记录的开始编号。

附:(你应该看看)

1.0       mysqlbinlog 是mysql自带的一个日志操作工具!

2.0       如果直接打开log文件 可能会是乱码,所以我们一般会:

      D:mysql_log>mysqlbinlog logbin_ouyang.000003 >log_3.txt  复制下 然后用记事本打开!

   就可以清楚的看到 操作的编号了 或者说(行号)

3.0       如果发生了错误的操作!如果可以的话!你应该立马停止数据库!然后恢复数据!

4.0       如果只是去掉某一个语句,你可以选择恢复两次 ,如图:

  

D:mysql_log>mysqlbinlog logbin_ouyang.000009 --stop-position=10625|mysql -uroot -proot D:mysql_log>mysqlbinlog logbin_ouyang.000009 --start-position=10843|mysql -uroo t –proot

5.0 如果发生 Could not read entry at offset 1478: Error in log format or read error. 类似的错误!

   请检查你的编号是否正确!注意这个编号 不是一些编辑器显示的那个行号哦,# at 450 /

经常delete 、update错了!所有给自己个文档!当然我也希望你永远的用不上这个文档 ! 周末愉快! (排版有的乱哈!多多包涵!)

您可能感兴趣的文章:

详解如何通过Mysql的二进制日志恢复数据库数据解说mysql之binlog日志以及利用binlog日志恢复数据的方法MySQL误操作后快速恢复数据的方法MYSQL使用.frm恢复数据表结构的实现方法InnoDB 类型MySql恢复表结构与数据