mysql数据恢复

1. 指定恢复时间

mysqlbinlog �Cstop-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:59
mysqlbinlog �Cstart-date=”2005-04-20 10:01:00″ /var/log/mysql/bin.123456 | mysql -u root -pmypwd
###将10:01:00登陆执行的命令再执行一遍



2. 指定恢复位置

位置恢复分为两个.一个是具体的开始时间和结束时间(stop-date和start-date一起使用)。另外一个就是指定日志位置(�Cstart-position和�Cstop-position)
开始时间-结束时间恢复:
mysqlbinlog �Cstart-date=”2005-04-20 9:55:00″ �Cstop-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=0
SET 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=0
SET 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来还原�Cserver-id

在数据库的配置文件中,都有一个serverid并且同一集群中serverid是不能相同的。
[root@BlackGhost mysql]# /usr/local/mysql/bin/mysqlbinlog �Cserver-id=1  /var/lib/mysql/mysql-bin.000002


你可能感兴趣的:(mysql,数据恢复)