Mysql数据恢复
1、创建数据库和表`
create database test1;
CREATE TABLE `course` (
`id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '课程id',
`name` varchar(10) DEFAULT NULL COMMENT '课程名称',
`tid` bigint(0) DEFAULT NULL COMMENT '教师id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '课程表' ;
INSERT INTO `course` VALUES (1, '语文', 2);
INSERT INTO `course` VALUES (2, '数学', 1);
INSERT INTO `course` VALUES (3, '英语', 3);
创建完表之后查询数据,以下是course表的数据内容 :
然后删除表格的一条数据,再次进行查询course表的数据内容:
2、日志的查询
使用以下命令进行当前日志的查询:
show master status;
查询结果如下:
使用如下命令刷新日志,生成一个新的日志,后续的表格操作都会在这个日志里:
flush logs;
之后再进行日志查询,查询结果如下:
向表格内插入新的数据:
INSERT INTO `course` VALUES (11, '法语', 1);
INSERT INTO `course` VALUES (12, '德语', 1);
对表格进行查询,结果如下:
使用如下命令进行日志记录查询:
SHOW BINLOG EVENTS IN 'binlog.000004';
查询得志日志要恢复的开始节点为1909,结束节点是3537,如下图所示:
3、数据恢复
再次刷新日志,产生一个新的日志:
使用如下命令对日志binlog.0000004的数据进行恢复:
mysqlbinlog --start-position=1909 --stop-position=3537 /var/lib/mysql/binlog.000004 | mysql -uroot -p
以下是恢复的结果,可见之前被删除的数据已经被恢复了:
使用以下命令对日志binlog.000005进行查询:
SHOW BINLOG EVENTS IN 'binlog.000005';
由查询结果可知,此日志要恢复的开始节点为310,结束节点为769:
以下是恢复结果: