mysql--误删除的数据恢复

一、mysql误删数据快速恢复

一、实例

 /**CREATE TABLE IF NOT EXISTS `member` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(16) NOT NULL,
`sex` enum('m','w') NOT NULL DEFAULT 'm',
`age` tinyint(3) unsigned NOT NULL,
`classid` char(6) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into member(`name`,`sex`,`age`,`classid`) values('wangshibo','m',27,'cls1'),('guohuihui','w',27,'cls2');
SELECT * from member;**/

-- 查看是否开启binlog日志
show variables like 'log_%';
show variables like '%log%';
show variables like 'log_bin';
-- 查看所有的二进制文件
show master logs;
-- 查找正在使用的二进制文件
show master status;
-- 查看指定的二进制制文件 from 123(起始位置) limit 2(表示跳过2行),10(表示查询10条记录)
show binlog events in 'mysql-bin.000004' -- from 123 limit 2,10
-- 再生成一个新的二进制文件
-- flush logs;
-- 清空二进制文件
-- reset master;
-- 某个时间点,备份全量数据,并生成新的二进制文件
-- mysqldump -uroot -p -B -F -R -x --master-data=2 testdb2 >testdb2.sql;
-- 导出二进制文件到sql文件
-- mysqlbinlog常见的选项有以下几个:
-- --start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间
-- --stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间 取值和上述一样
-- --start-position:从二进制日志中读取指定position 事件位置作为开始。
-- --stop-position:从二进制日志中读取指定position 事件位置作为事件截至
-- mysqlbinlog --no-defaults --base64-output=decode-rows -v --start-datetime="2018-9-15 17:48:49" --stop-datetime="2018-10-16 23:59:49" mysql-bin.000004 >00004.sql
-- drop 数据库;
-- 恢复备份的全量数据
-- mysql -uroot -p -v < testdb2.sql
-- mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'
-- 命令中加入--no-defaults参数
-- 指定pos结束点恢复(部分恢复):
-- mysqlbinlog  --no-defaults --stop-position=1132 --database=ops mysql-bin.000004 | mysql -uroot -p123456 -v testdb2
-- 完全恢复(需要手动vim编辑mysql-bin.000004,将那条drop语句剔除掉)
-- mysqlbinlog  --no-defaults mysql-bin.000004 | mysql -uroot -p123456 -v testdb2

二、Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

 


 

你可能感兴趣的:(mysql)