Mysql从删库到跑路

获取2024golang面试题

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、创建数据库表并插入数据

1DROP TABLE IF EXISTS `xoxo`;
2CREATE TABLE `xoxo` (
3  `stuname` varchar(10) DEFAULT NULL
4) ENGINE=InnoDB DEFAULT CHARSET=utf8;
5
6INSERT INTO `xoxo` VALUES ('tom');
7INSERT INTO `xoxo` VALUES ('lilei');
8INSERT 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

再进入数据库看看,数据全部都恢复啦。

欢迎关注微信公众号「Golang知识局

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值