在操作数据库过程中如果不小心删除了某个记录或某个表时,如果你开启了二进制日志可以进行即时恢复
恢复方式有两种
这里说的是关于基于位置的恢复
下面的动作适用于:你执行了一些错误的数据库操作导致数据不完整时,比如你drop了一个表或者delete一些记录时
我下面的测试错误操作就是drop lee1这个表
- mysql> show master status\G
- *************************** 1. row ***************************
- File: mysql-bin.000001
- Position: 4266
- Binlog_Do_DB:
- Binlog_Ignore_DB:
- 1 row in set (0.00 sec)
显示你当前正在使用的bin文件
然后你是用命令查看这个二进制内容
- mysql>show binlog events in "mysql-bin.000001" from 107;
记录下你所做的错误操作的上个位置 我这里就是2285,因为是drop了lee1这个表 所以要找到创建这个表的位置处
我这里的位置就是188
退出mysql在命令行下使用mysqlbinlog命令来做即时点恢复,命令格式就是这样了
- [root@www ~]# mysqlbinlog --start-position="188" --stop-position="2285" /var/lib/mysql/mysql-bin.000001|mysql -uroot -pPASSWD
我们来看看效果