1. 指定恢复时间
mysqlbinlog –stop-date=”2005-04-20 9:59:59″ /var/log/mysql/bin.123456 | mysql -u root -pmypwd###上面意思是:比如你在2005-04-20的10:00:00做了一个删除操作(在bin.123456能看到具体的时间)。然后想恢复数据那么就还原binlog日志到9:59:59mysqlbinlog –start-date=”2005-04-20 10:01:00″ /var/log/mysql/bin.123456 | mysql -u root -pmypwd###将10:01:00登陆执行的命令再执行一遍
2. 指定恢复位置
位置恢复分为两个.一个是具体的开始时间和结束时间(stop-date和start-date一起使用)。另外一个就是指定日志位置(–start-position和–stop-position)开始时间-结束时间恢复:mysqlbinlog –start-date=”2005-04-20 9:55:00″ –stop-date=”2005-04-20 10:05:00″ /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql##恢复2005-04-20 9:55:00到2005-04-20 10:05:00中间的操作然后到处到一个sql文件然后倒库一样导入即可。binlog日志不能直接修改日志位置恢复mysqlbinlog --start-position="374" --stop-position="456" mysql-bin.000045 |mysql -uroot -p123456
ps :那么上面的374和456哪来的呢 查看你的日志
[root@localhost var]#mysqlbinlog mysql-bin.000045#130604 17:42:52 server id 1 end_log_pos 374 Query thread_id=1 exec_time=91 error_code=0SET TIMESTAMP=1370338972/*!*/;create table kexiaolong (id int)/*!*/;# at 374#130604 17:44:52 server id 1 end_log_pos 456 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1370339092/*!*/;drop table kexiaolong/*!*/;
3,根据数据库名来进行还原 -d
在这里是小写的d,请不要把它和mysqldump中的-D搞混了。哈哈。[root@BlackGhost mysql]# /usr/local/mysql/bin/mysqlbinlog -d test /var/lib/mysql/mysql-bin.000002
4 根据数据库所在IP来分-h
[root@BlackGhost mysql]# /usr/local/mysql/bin/mysqlbinlog -h 192.1681.102 /var/lib/mysql/mysql-bin.000002
5,根据数据库所占用的端口来分-P
有的时候,我们的mysql用的不一定是3306端口,注意是大写的P[root@BlackGhost mysql]# /usr/local/mysql/bin/mysqlbinlog -P 13306 /var/lib/mysql/mysql-bin.000002
6,根据数据库serverid来还原–server-id
在数据库的配置文件中,都有一个serverid并且同一集群中serverid是不能相同的。[root@BlackGhost mysql]# /usr/local/mysql/bin/mysqlbinlog –server-id=1 /var/lib/mysql/mysql-bin.000002