首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

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

破涕为笑.gif

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180809G1WMDL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券