首先查看是否開啟了binlog
show variables like '%log_bin%';

image.png
沒有開啟binlog,就無法使用binlog進行數(shù)據(jù)找回
查找binlog路徑
show variables like '%datadir%';

image.png
找到對應的binlog文件
一般為修改時間最近的文件

image.png
按誤操作時間找到對應的binlog記錄,并轉(zhuǎn)換為sql
mysqlbinlog --base64-output=decode-rows -v --database=數(shù)據(jù)庫名稱 --start-datetime="2022-11-26 11:32:00" --stop-datetime="2022-11-26 11:33:00" "/usr/local/var/mysql/binlog.000026" > /../mysqllog.sql
將文件中DELETE語句轉(zhuǎn)換為INSERT語句
cat mysqllog.sql | sed -n '/###/p' | sed 's/### //g;'| sed 's/DELETE FROM/);INSERT INTO/g;' |sed 's/WHERE/VALUES(/g;' |sed -E 's/(@17.),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > mysqllogOK.sql
注意這種替換方式,需要對結果文件的開頭和結尾進行處理。