今天就遇到了,昨天刚的上的项目还没来得及做数据定时备份就出问题了。只有利用日志文件了(幸好我的日志记录功能的开启的^_^)。
首先说下如何打开日志记录。
打开日志文件记录的开关,在MY.INI里,MYSQLD项下添加log-bin=mysql,这样在DATA目录下,就会产生如MYSQL.000001,MYSQL.000002之类的二进制文件了。如果只对某个库进行日志文件记录,那么再添加binlog-do-db=TEST,这样就只记录TEST数据库的日志,而放弃其他的。添加完后,重新启动MYSQL的服务,日志文件开始工作了。
打开日志记录功能以后,除了SELECT语句不被记录外,其它所有语句都会记录进去。
下面进行恢复:
查看命令:
D:\mysql6\bin>mysqlbinlog d:\mysql6\data\mysql.000001打开mysql.000001 可以看到许多执行语句。
提取位置270到377的语句到 3.sql 中
D:\mysql6\bin>mysqlbinlog d:\mysql6\data\mysql.000003 --start-position=270 --stop-position=377 -r 3.sql
或按时间段提取:
D:\mysql6\bin>mysqlbinlog d:\mysql6\data\mysql.000003 --start-datetime="2010-09-27 00:00:00" --stop-datetime="2010-09-27 12:00:00" -r 3.sql
如果要全部导入提取的sql:
mysql> source d:\mysql6\bin\3.sql
但最好不要这样,也许会数据重复。
最好是打开sql复制自己需要的sql执行。