记录一次数据恢复,mysql8 - 义美

news/2025/11/3 17:41:49/文章来源:https://www.cnblogs.com/shaozhu520/p/19187767

SHOW VARIABLES LIKE 'log_bin_basename';

Variable_name Value
log_bin_basename E:\environment\mysql-8.0.41-winx64\data\binlog

SHOW MASTER STATUS;

File Position Binlog_Do_DB Binlog_Ignore_DB Executed_Gtid_Set
binlog.000046 1889087

保存日志,(E:\environment\mysql-8.0.41-winx64\data\binlog.000046  这个是日志的路径)
mysqlbinlog --no-defaults --start-datetime="2025-11-03 16:40:00" --stop-datetime="2025-11-03 17:10:00" --base64-output=DECODE-ROWS -v "E:\environment\mysql-8.0.41-winx64\data\binlog.000046" > "E:\recovery_data1.sql"

import redef generate_recovery_sql(binlog_file_path, output_file_path):with open(binlog_file_path, 'r', encoding='utf-16') as f_in:binlog_content = f_in.read()# Regex to find DELETE statements and capture the SET_VAR lines that contain the column values# We look for '### DELETE FROM `mall_wxyoupin_com`.`yoshop_upload_file`' followed by '### WHERE' and then '### SET_VAR' linesdelete_pattern = re.compile(r'### DELETE FROM `mall_wxyoupin_com`\.`yoshop_upload_file`\n'r'### WHERE\n'r'(.*?)(?=\n### @|\n# at |$)',re.DOTALL)# Column mapping based on the table structure and @ variable indicescolumn_mapping = {1: 'file_id',2: 'group_id',3: 'channel',4: 'storage',5: 'domain',6: 'file_type',7: 'file_name',8: 'file_path',9: 'file_size',10: 'file_ext',11: 'cover',12: 'uploader_id',13: 'is_recycle',14: 'is_delete',15: 'store_id',16: 'create_time',17: 'update_time',}recovery_statements = []for match in delete_pattern.finditer(binlog_content):where_clause_block = match.group(1)# Extract all @ variables and their values from the WHERE clause blockset_var_matches = re.findall(r'###   @(\d+)=([\s\S]*?)(?=\n###   @|\n)', where_clause_block)row_values = {}for var_index_str, var_value_str in set_var_matches:var_index = int(var_index_str)# Clean up the value string: remove leading/trailing spaces and quotes if presentvar_value = var_value_str.strip()if var_value.startswith("''") and var_value.endswith("''"):var_value = var_value[1:-1] # Remove outer single quoteselif var_value.startswith("'") and var_value.endswith("'"):var_value = var_value[1:-1] # Remove outer single quotesrow_values[var_index] = var_value# Construct the INSERT statementcolumns = []values = []for i in range(1, len(column_mapping) + 1):if i in row_values:columns.append(f'`{column_mapping[i]}`')# Handle string values by quoting them, numeric values directlyif isinstance(row_values[i], str) and not row_values[i].isdigit():values.append(f"'{row_values[i].replace("'", "''")}'") # Escape single quotes within stringelse:values.append(str(row_values[i]))else:# If a column is not found in the DELETE statement, it might be NULL or have a default value.# For recovery, it's safer to explicitly set it to NULL or its default if known.# For simplicity, we'll assume all columns are present in the DELETE's WHERE clause for now.# If not, this part needs more sophisticated handling based on schema defaults.pass # This case should ideally not happen if all columns are in the WHERE clauseif columns and values:insert_statement = f"INSERT INTO `mall_wxyoupin_com`.`yoshop_upload_file` ({', '.join(columns)}) VALUES ({', '.join(values)});"recovery_statements.append(insert_statement)with open(output_file_path, 'w', encoding='utf-8') as f_out:for statement in recovery_statements:f_out.write(statement + '\\n')return len(recovery_statements)if __name__ == "__main__":binlog_file = 'd:/phpstudy_pro/WWW/yp/yoshop2.0/数据库修改记录/圈子/recovery_data1.sql'output_sql_file = 'd:/phpstudy_pro/WWW/yp/yoshop2.0/数据库修改记录/圈子/recovery_yoshop_upload_file.sql'print(f"Starting recovery SQL generation from {binlog_file}...")num_statements = generate_recovery_sql(binlog_file, output_sql_file)print(f"Generated {num_statements} INSERT statements into {output_sql_file}")print("Recovery SQL generation complete. Please review the generated SQL file before executing it.")

 



python d:/phpstudy_pro/WWW/yp/yoshop2.0/generate_recovery_sql.py 执行会得到 recovery_yoshop_upload_file.sql


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/954745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年新能源水冷电机壳铝合金浇铸机批发厂家权威推荐榜单:户外围墙配件铝合金浇铸机/厨具锅铝合金浇铸机/手套模具铝合金浇铸机源头厂家精选

在新能源汽车产业快速发展的推动下,新能源水冷电机壳铝合金浇铸机以其高达95%的成品合格率和每分钟300mm的浇铸速度,正成为电机壳制造领域的核心设备。 新能源水冷电机壳作为电动汽车驱动系统的关键部件,其制造工艺…

2025年耐高温的轴承制造商权威推荐榜单:轴承耐高温源头/高速耐高温轴承/耐高温高速轴承源头厂家精选

在冶金、航空航天、化工等高端制造领域,耐高温轴承作为关键基础零部件,其热稳定性和可靠性直接关系到整套设备在极端环境下的运行效能。高性能耐高温轴承能够在1500℃的极端环境下保持稳定工作,将设备维护周期延长2…

Chef:开源 AI 全栈应用构建工具实践

Chef 是 Convex 推出的开源 AI 应用构建工具,能根据自然语言生成包含数据库、认证和实时功能的完整全栈应用。通过类型安全开发循环实现自动错误修复,解决传统 AI 工具只能生成前端代码的问题,适合快速原型开发。一…

2025年哈尔滨发动机维修保养权威推荐榜单:汽车维修/汽车保养/变速箱维修保养服务商精选

在哈尔滨汽车后服务市场,发动机作为车辆的“心脏”,其维修保养质量直接关系到车辆的使用寿命、性能表现及燃油经济性。行业数据显示,定期进行专业发动机保养可提升5%-10% 的燃油经济性,并显著降低故障发生率。本文…

2025 年 11 月阻燃石墨,膨胀石墨,导热石墨母粒厂家最新推荐,产能、专利、环保三维数据透视!

引言 随着新能源、电子信息等领域对阻燃石墨,膨胀石墨,导热石墨母粒需求的持续增长,市场对优质石墨产品的筛选标准愈发严格。本次推荐榜单依托行业协会最新测评数据,从产能规模、专利技术、环保合规三大核心维度展…

2025 年 11 月石墨烯,可膨胀石墨,导热石墨母粒厂家最新推荐,产能、专利、环保三维数据透视!

引言 近期,行业协会针对石墨烯、可膨胀石墨、导热石墨母粒领域开展专项测评,通过产能规模、专利技术、环保合规三大核心维度,对近百家企业进行数据核验与实地考察,最终筛选出综合实力突出的优质厂家。本次测评采用…

[CSP-S 2025] 社团招新 / club题解

题目(仅针对luogu上传的题) P14361 [CSP-S 2025] 社团招新 / club(民间数据) 题目背景 民间数据测试强度可能偏弱。 题目描述 小 L 是学校算法协会的成员。在今年的学校社团招新中,小 L 一共招收了 \(n\) 个新成员…

La Suite Docs:开源协作文档平台,可私有部署的 Notion 替代方案

法国政府开源的企业级协作文档平台,GitHub 14.3k star。基于 Django+React 开发,支持实时协作、离线编辑、AI 辅助写作,可私有部署,是 Notion 的开源替代方案。💡 从一个真实需求说起 团队想搭建知识库,Notion …

Cisco Jabber 15.1 (Andriod, iOS, macOS, Windows) - 面向企业的多合一通信工具

Cisco Jabber 15.1 (Andriod, iOS, macOS, Windows) - 面向企业的多合一通信工具Cisco Jabber 15.1 (Andriod, iOS, macOS, Windows) - 面向企业的多合一通信工具 即时消息、语音和视频通话、语音邮件、桌面共享、会议…

Shotcut 25.10 (Linux, macOS, Windows) - 免费开源视频编辑器

Shotcut 25.10 (Linux, macOS, Windows) - 免费开源视频编辑器Shotcut 25.10 (Linux, macOS, Windows) - 免费开源视频编辑器 free, open source, cross-platform video editor 请访问原文链接:https://sysin.org/blo…

Cisco Packet Tracer 9.0 新增功能简介

Cisco Packet Tracer 9.0 (macOS, Linux, Windows) - 思科网络模拟工具Cisco Packet Tracer 9.0 (macOS, Linux, Windows) - 思科网络模拟工具 Cisco network simulation tool 请访问原文链接:https://sysin.org/blog…

划分型dp

参考下面题单里面 五、划分型 DP https://leetcode.cn/discuss/post/3581838/fen-xiang-gun-ti-dan-dong-tai-gui-hua-ru-007o/

2025年青石栏杆制造厂权威推荐榜单:别墅石栏杆/石栏杆/河道石栏杆源头厂家精选

在传统建筑复兴与现代景观建设融合的背景下,青石栏杆以其古朴的质感、出色的耐久性和浓郁的文化气息,持续受到市政工程、园林景观及仿古建筑项目的青睐。 青石栏杆作为建筑领域的关键构件,兼具安全防护与艺术装饰双…

2025年高分子聚乙烯衬板生产商权威推荐榜单:高分子聚乙烯耐磨板/聚乙烯耐磨衬板/超高分子聚乙烯衬板源头厂家精选

在工业耐磨材料领域,一场由高分子聚乙烯衬板引领的技术变革正悄然发生,其耐磨性能是碳钢的7倍以上,为工业设备寿命延长提供了全新解决方案。 据塑料加工工业协会2024年度测评数据显示,中国高分子聚乙烯衬板市场规模…

2025年燃气发电机组制造商权威推荐榜单:石油管道发电机组/矿山用发电机组制造企业/加油站静音发电机设备源头厂家精选

在能源转型与低碳发展的背景下,燃气发电机组作为清洁能源利用的关键装备,其发电效率与环保性能直接关系到能源消费结构的优化进程。高性能燃气发电机组能够实现快速启停与负荷灵活调节,将综合能源利用率提升至80%以…

2025 年 11 月 DALI 控制器厂家推荐排行榜,DALI 控制器主机,DALI 照明控制系统,智能调光控制器公司精选

2025 年 11 月 DALI 控制器厂家推荐排行榜,DALI 控制器主机,DALI 照明控制系统,智能调光控制器公司精选 随着智能照明技术的快速发展,数字可寻址灯光接口(DALI)协议已成为现代照明控制系统的核心标准。DALI 控制…

【2025-11-02】连岳摘抄

23:59当我们感到悲伤,无法再忍受生活,一 棵树就会对我们说:安静,安静看着我!生活既非容易,生活亦非艰难。——黑塞我觉得,教育是件很容易的事,即使是最后一名,也能完成。教育要达成什么目的呢?一是会阅读(不…

cookie session token 区别

Cookie、Session、Token 都是用于身份验证的技术,核心区别在存储位置和用途。 Cookie:存在用户浏览器里,体积小,常存非敏感信息,比如记住登录状态。 Session:数据存在服务器,客户端只存一个 “Session ID”(多…

2025 年除尘器厂家最新推荐排行榜权威发布,深度剖析各厂家技术实力、市场口碑及适用场景热电湿电 / 钢厂湿电 / 生物质锅炉湿电 / 静电除尘器公司推荐

引言 近期,行业协会针对除尘器领域开展了年度权威测评,本次测评覆盖近百家除尘器生产企业,从技术实力、产品质量、能耗控制、服务能力及市场口碑五大维度设置 28 项细分指标,采用实地考察、设备性能检测、客户满意…

iap2 - 从枚举到打开native完整USB抓包

[{"metadata" : {"identity" : "ATS.Message.Transport","message" : {"message" : "<USB host connected>"},"source" : "--&quo…