一、操作环境
操作系统版本 Windows 11 家庭中文版
Python版本 3.12.4
mysql版本 8.0.36
mysqlbinlog_8">二、mysql的binlog
-
确认binlog已开启
SHOW VARIABLES LIKE 'log_bin'; #查询结果 #Variable_name,Value # log_bin,ON#Value为ON,binlog开启,未开始无法通过本方法恢复数据
-
确认binlog文件名
show master logs ; #查询结果 #Log_name,File_size,Encrypted #WIN-NRCI07S1FRG-bin.000004,125326347,No #WIN-NRCI07S1FRG-bin.000005,14928391,No #WIN-NRCI07S1FRG-bin.000006,12441711,No#确认binlog文件名 #WIN-NRCI07S1FRG-bin.000004 #WIN-NRCI07S1FRG-bin.000005 #WIN-NRCI07S1FRG-bin.000006
-
确认binlog文件所在目录
show variables like '%datadir%'; #查询结果 #C:\ProgramData\MySQL\MySQL Server 8.0\Data\
二、安装binlog2sql
三、binlog2sql参数详解
四、恢复数据流程
五、问题及解决办法
-
Windows乱码
修改XX文件XX行代码如下
block = platform.system() == 'Windows' and block.decode("gbk") or block.decode("utf-8")
完整代码,直接替换XX文件即可
-
生成列乱序
-
无法执行,双引号解决
-
加密
pip install cryptography
-
可以看看github上的issue
起因:有点手痒,想把生产环境中多余数据删除,查询了无用数据的范围,一条sql直接把表给请了。
delete from lbzn_inspections_projects_items
where project_id>=29 or project_id<=188;
跑路是不能跑路的,老老实实的恢复数据吧。
参考