MySQL误删数据 回滚

前言

生产环境数据库不允许删除表,可以将表修改成 XXX_to_delete
如果误删简单数据,可以考虑使用binlog恢复

一、查看命令

1.查看binlog是否开启

show variables like 'log_bin';

MySQL误删数据 回滚_第1张图片
切换到MySQL安装目录,查看mysqlbinlog日志文件

2.查看所有 binlog 日志

SHOW BINARY LOGS;

MySQL误删数据 回滚_第2张图片

3.查看正在使用的binlog日志

SHOW MASTER STATUS;

MySQL误删数据 回滚_第3张图片

4.查看binlong日志文件所在地址

SHOW VARIABLES LIKE '%datadir%';

MySQL误删数据 回滚_第4张图片

与之对应的binlog文件
在这里插入图片描述

show binlog EVENTS in 'binlog.000009' 

5.binlog日志格式

查看binlog_format字段

 show variables like '%binlog%';

MySQL误删数据 回滚_第5张图片

二、尝试恢复

在命令行执行mysqlbinlog命令将日志文件转化成sql

yellowdavid@huangdaweideMacBook-Pro mysql % mysqlbinlog /opt/homebrew/var/mysql/binlog.000009 > /Users/yellowdavid/Desktop/db.sql

MySQL误删数据 回滚_第6张图片
解析出来sql是乱码,添加–base64-output=decode-rows -v解析

mysqlbinlog --no-defaults --database=ry --base64-output=decode-rows -v --start-datetime='2023-09-06 00:00:00' --stop-datetime='2023-09-06 16:00:00' /opt/homebrew/var/mysql/binlog.000009  >/Users/yellowdavid/Desktop/db.sql

MySQL误删数据 回滚_第7张图片

你可能感兴趣的:(mysql,数据库)