在命令行中输入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错了!所有给自己个文档!当然我也希望你永远的用不上这个文档 ! 周末愉快!
(排版有的乱哈!多多包涵!)










