mysql可以通过binlog日志恢复到指定时间的数据,前提是你的mysql开启了binlog
如:
/usr/local/mysql/bin/mysqlbinlog --start-datetime="2013-07-11 03:04:00" --stop-datetime="2013-07-12 20:55:00" /data/mysql/var_3306/mysql-bin.0000* > /tmp/game_bin.sql

选项解析:
/usr/local/mysql/bin/mysqlbinlog  使用mysql自带的命令从二进制文件binlog中导出sql文件
--start-datetime                  要恢复数据的起始时间,可以精确到秒,上例中时间就是2013年7月11日3点04分
--stop-datetime                   要恢复数据的截止时间,上例中的时间为2013年7月12日20点55分
/data/mysql/var_3306/mysql-bin.0000*   指定mysql生成二进制的文件路径,可以指定单个文件,也可以指定所有

这样生成sql文件就是从2013-07-11 03:04:00到2013-07-12 20:55:00的所有数据

注:
导出的sql文件会产生二进制乱码,此时需要对文件进行替换处理
文件中一般产生的乱码符号可以在vi文件中使用快捷方式ctrl+v,ctrl+2打出,然后使用全局替换为空即可。
恢复数据时需要先将原有的数据库删除,然后导入完整备份的数据库,最后导入生成的sql文件。