Mysql从删库到跑路

1、开启bin-log
打开mysql配置文件 /etc/mysql/my.cnf(这个位置不是固定的,根据你安装的mysql目录去找)
放开log_bin这一行

log_bin = /var/log/mysql/mysql-bin.log
随后重启mysql 即执行

/etc/init.d/mysql restart
进入数据库,查看log_bin开启状态

show variables like ‘%log_bin%’;
图片

可以看到 log_bin的值是ON就表示已经开启了log-bin
再到/var/log/mysql/目录下查看,就已经多了两个log-bin日志文件

mysql-bin.000001
mysql-bin.index
为什么是两个呢?
我们打开mysql-bin.index文件后看到只有一行数据:

/var/log/mysql/mysql-bin.000001
什么意思呢?也即是mysql-bin.index这个文件最终指向了mysql-bin.000001文件。

2、创建数据库表并插入数据
DROP TABLE IF EXISTS xoxo;
CREATE TABLE xoxo (
stuname varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO xoxo VALUES (‘tom’);
INSERT INTO xoxo VALUES (‘lilei’);
INSERT INTO xoxo VALUES (‘jimGreen’);

3、删库跑路
drop table xoxo;
如果此时没有对数据库做备份,且没有开启binlog,删完库基本就只能坐那哭了。不哭也行,那就是——撒丫子赶紧跑路~

撒丫子跑鸭

4、恢复数据:
先查看应该从哪里恢复。

执行命令

/usr/bin/mysqlbinlog –no-defaults mysql-bin.000001 |more
我们可以看到每一次针对数据库的操作节点。

at 833

at 934

at 961

我们注意到在删除数据库表的下一个节点是961,那我们恢复数据时的终止节点也需要选这个

恢复:

/usr/bin/mysqlbinlog –no-defaults mysql-bin.000001 –stop-position=’961’|mysql -uroot -pfulianzhuren
再进入数据库看看,数据全部都恢复啦。

猜你喜欢

转载自blog.csdn.net/dreamingcrazy/article/details/82024153