前言
生产环境数据库不允许删除表,可以将表修改成 XXX_to_delete
如果误删简单数据,可以考虑使用binlog恢复
一、查看命令
1.查看binlog是否开启
show variables like 'log_bin';
切换到MySQL安装目录,查看mysqlbinlog日志文件
2.查看所有 binlog 日志
SHOW BINARY LOGS;
3.查看正在使用的binlog日志
SHOW MASTER STATUS;
4.查看binlong日志文件所在地址
SHOW VARIABLES LIKE '%datadir%';
与之对应的binlog文件
show binlog EVENTS in 'binlog.000009'
5.binlog日志格式
查看binlog_format字段
show variables like '%binlog%';
二、尝试恢复
在命令行执行mysqlbinlog命令将日志文件转化成sql
yellowdavid@huangdaweideMacBook-Pro mysql % mysqlbinlog /opt/homebrew/var/mysql/binlog.000009 > /Users/yellowdavid/Desktop/db.sql
解析出来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