从删库到没跑路的一些经历总结,BinLog 的使用【专业克制 rm -rf】——清欢

Vite与Webpack路径配置大不同:从Vue2迁移到Vue3必须知道的public目录使用技巧 本文详细解析了Vite与Webpack在public目录路径配置上的核心差异,为Vue2迁移到Vue3的开发者提供实用指南。重点对比了两种构建工具的资源处理逻辑,给出典型编译警告的解决方案,并分享路径适配表与高级优化技巧,帮助开发者高效完成技术栈升级。 阅读详情
早上还在公交车,甲方打电话问为什么统计报表数据不显示了,一脸懵逼,回忆起来这几天删除了很多次表,还用的Truncate删除的,不可恢复的
拿着生产数据当测试了,删了测,测了删,心想一定要有备份啊,结果发现没备份
甲方说月底了,需要给集团汇总报表数据,现在上级问下来了
到了场地,啧啧了,还好有备份文件,不过是每天早上4 点自动备份的数据,这几天每天用那么多次 Truncate,最终的数据肯定丢失很严重
果然甲方发现丢失了三天的数据,让我给找回,不然没法给上级交代。。。。。。
第一反应,我没想过跑路,可能是程序员的职业操守,遇到问题第一面对问题,解决问题,我想到了刚毕业的时候老师教的 binlog,然后一顿百度,查看下是否开启 binlog 了,不幸中的万幸!binlog 开启状态
MySQL 已启用 binlog 在 my.cnf 或 my.ini 中确认如下配置:
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
查看 binlog 的状态
SHOW BINARY LOGS;
ok 开始上硬菜,既然开启 binlog 那就按照步骤来找回数据

1.本地创建数据库

我的是苹果电脑 Mac,所以需要下载 dmg,然后配置环境变量

echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

拉取生产上的数据下来,没办法怂了,害怕了,不敢直接拿生产数据库做实验了

2.拉取binlog文件

binlog 文件是二进制文件,先用 binlog 解析成 mysql 文件

这里使用时间来缩小范围,把 binlog 文件缩小化,比如就昨天使用的 Truncate 那就把时间改成昨天的 00 点和 24 点

mysqlbinlog --start-datetime="2024-12-25 10:00:00"  --stop-datetime="2024-12-25 23:59:59" --database=miantiaoji_dev --result-file=recover.sql  /path/to/mysql-bin.000001 /path/to/mysql-bin.000002

把这个 sql 文件拿到本地打开
在这里插入图片描述
这里直接搜 Truncate,然后找到前面有个at,后面的数字,一定要记下来,很重要!特别重要!后期恢复数据就靠这个了,把所有的 Truncate 的数字都记录下来

3.利用初始化数据

多个数字之间,1-2 执行完了 执行 2-3,以此类推把删除的数据都粘贴出来 Insert

mysqlbinlog  --start-position=199595629 --stop-position=223722528 /Users/chentangxu/mysql-bin.000004 | mysql -u root -p

在这里插入图片描述

4执行粘贴出来的SQL

在这里插入图片描述

完美收官

以后删库别紧张,别跑路

Flutter 直接调用so动态库,或调用C/C++源文件内函数 我把 .so 文件尝试放过好几个目录/lib/,最终都会报这个错误,现在才知道库文件需要放在你根本想象不到的地方!!!尝试了一些方法还是不行后我放弃了 ffi,想着用 Flutter 的 MethodChannel 桥接 android/ios 原生,再让原生去调 native 层。一顿操作把Android端的搞定了,当然中间涉及到 Kotlin和C++ 层的数据类型映射的痛苦,而且业务函数也不像一个 helloworld 那么简单,别提有多痛苦了。 阅读详情

相关推荐

✨从零搭建 Ubuntu22.04 + Python3.11 + PyTorch2.5.1 GPU Docker 镜像并上传 Docker Hub

构建一个带 GPU 支持的深度学习开发镜像;使用 PyTorch 2.5.1(CUDA 12.4)环境;发布并托管 Docker 镜像至 Docker Hub;验证 GPU 环境正常运行!🎉 这将极大提升你的项目部署效率,尤其是在多人协作或跨平台部署场景中。

用大模型重构生活:猫奴程序员的AI智能日常记录 1576

机器学习工程化实战:从Notebook到Kubernetes生产部署

机器学习工程化(MLOps)是将模型从实验环境推向高可用生产系统的核心能力,其本质在于解决计算范式、数据契约与责任主体三大断裂。通过模型服务化(model serving)实现低延迟实时推理,依托MLOps流水线保障可重复部署与可观测性,最终支撑风控、推荐、IoT等关键业务场景的稳定运行。本文聚焦真实落地中的ONNX序列化、特征一致性、KServe+Triton协同部署及数据漂移监控等硬核实践,覆盖模型服务化与MLOps pipeline两大核心热词,为已具备算法基础的工程师提供可复用的生产级路径。

abo1977的博客 463

ComfyUI-Impact-Subpack插件安装避坑指南:为什么你的UltralyticsDetectorProvider节点还是找不到?

本文深入解析了ComfyUI-Impact-Subpack插件的安装与排障问题,特别是针对UltralyticsDetectorProvider节点缺失的常见问题提供了详细的解决方案。从底层机制到高阶应用,涵盖了手动安装、模型配置、性能优化等关键步骤,帮助用户彻底解决插件依赖关系断裂问题。

Jerry的专栏 1151

解决JPA中使用@Query注解无法使用limit分页函数__一蓑烟雨任平生

项目中有使用到Spring Data JPA来做查询,在某个查询中,想用limit函数分页,如下: @Transactional @Query(value = "select a.id ,a.even,a.createat,a.iot,a.reada from alarm a where a.adminid=:userId ORDER BY a.createat DESC Limit :num,10") List<Alarm> findByUserId(@Param("u

Jaeger_Java的博客 1777

Nmap源码分析(端口扫描)

端口扫描是Nmap的核心功能,用于确定目标机的端口状态(开放、关闭、过滤等),也为Nmap的服务与版本扫描、OS扫描、脚本扫描提供基本的指引信息。所以,深入理解端口扫描的实现对分析其他的扫描方式很有帮助。 1简单回顾   首先简要回顾一下端口扫描的原理以及命令行选项。 1.1扫描原理   Nmap提供的10多种类型的端口扫描方法,如TCP SYN/ACK/FIN/Xmas/NULL/ Windows/Connect,FTP Bounce, Idle scan, UDP port u...

墨痕诉清风的博客 1596

Java:PriorityQueue详解——从零基础到应用

看了网上的详解,我反是一篇没看懂,都是什么垃圾玩意也发出来,无语,我自己根据这两天的学习总结出来了下面这些干货,我就是这么学会的,大家要是零基础看肯定木问题。

流楚丶格念的博客 6140

JAVA后台常用方法_一蓑烟雨任平生

Springboot 时间转换类,越用越爽 package com.hnyfkj.productmarket.web.config; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonPr

Jaeger_Java的博客 504

【毕设全程指导】基于YOLOv8的包装商品检测与可视化系统(SKU110K实战)

本文介绍了一个基于YOLOv8的包装商品检测与可视化系统毕业设计方案。项目采用SKU110K数据集,通过CSV转TXT格式转换适配YOLO模型训练,包含详细的环境搭建、模型配置和训练流程。系统实现了包装商品的自动化检测,并开发了Tkinter可视化界面进行交互式检测展示。该方案结合产业应用需求与技术深度,既具备实用价值,又能充分展示学生的技术能力,适合作为计算机视觉相关专业的毕业设计选题。整个项目从数据准备到界面开发完整覆盖,帮助学生系统掌握目标检测项目的完整实现流程。

LXY_LOVE36的博客 145

存储过程,Event事件,简单易懂,志伟随笔

一张图片,一下午的时间没了,直接上图,然后慢慢讲解 先解释下每一行的sql啥意思 TRUNCATE TABLE `table`; 删除表中数据,让他从0开始增长 UPDATE `line_table` SET time = DATE_ADD(time,INTERVAL 1 DAY) 往后加一天Date_add,向前加一天就是Date_sub,两个基本函数而已,没啥意义 CREATE EV...

Jaeger_Java的博客 486

基于 STM32 单片机的实验室多参数安全监测系统设计与实现

本系统以 STM32F103C8T6 单片机为核心,集成温湿度监测、烟雾检测、气体泄漏报警、人体移动监测等功能模块,通过 OLED 显示屏实时显示数据,并支持 Wi-Fi 远程传输。系统可对实验室异常环境参数(如高温、烟雾、燃气泄漏)及非法入侵实时报警,保障实验室安全。本文从硬件选型、电路设计到软件实现提供了完整的实验室安全监测系统方案,可根据实际需求调整传感器类型和通信方式,适用于科研、教学等场景的环境安全防护。:可增加继电器模块控制通风设备或切断电源,集成 ZigBee 组网实现多实验室联动监测。

weixin_42300449的博客 1284

汽车安全新防线|基于AI的入侵检测系统开发(全网独家复现),CNN-BiLSTM融合改进篇 强化CAN总线数据感知、助力多类型入侵检测、实时响应预警、车载场景有效落地

基于AI的入侵检测系统是汽车网络安全领域的重要技术突破,能够有效应对日益复杂的网络攻击威胁。随着AI技术的不断发展和普及,AI入侵检测系统将在汽车安全领域发挥越来越重要的作用。对于汽车制造商和供应商来说,实施AI入侵检测系统不仅是保障车辆安全的需要,也是提升市场竞争力的重要手段。未来,AI入侵检测系统将成为智能汽车的标准配置,为用户提供更加安全、可靠的驾驶体验。

getusushu的博客 85

数据库优化三部曲(1)-主从复制-一蓑烟雨任平生

[mysql] default-character-set=utf8mb4 [mysqld] #设置3306端口 port=3506 # 设置mysql的安装目录 basedir=H:\\mysql\\mysql-8.0.22-winx64-1 datadir=H:\\mysql\\mysql-8.0.22-winx64-1\\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8m

Jaeger_Java的博客 333

R语言中如何获取前向选择(forward selection)选出的变量

前向选择是一种常用的特征选择方法,可以在给定一个预测模型的情况下,逐步添加变量来确定最佳的预测模型。在R语言中,可以使用适当的函数和库来执行前向选择,并获取选出的变量。以下是一个详细的步骤,展示了如何使用R语言执行前向选择并获得选出的变量。通过按照上述步骤,你可以使用R语言执行前向选择,并获取选出的变量。记住,前向选择是一种特征选择方法,可以根据不同的评估指标选择最佳的预测模型。接下来,准备用于前向选择的数据。使用"summary"函数查看前向选择的摘要,并使用"which"函数获取被选中的变量。

WangWEel的博客 923

MySql时区问题,志伟随笔

今天老板让开了一个IOT新项目,当然用的框架还是最熟悉的SpringBoot了,本来想自己搭个框架的,自己引了一些依赖,然后就开始了我的无限报错,各种错误各种出,让我放了大招依旧报错,我的大招就是把以前项目的pom文件从新拷贝过来,不说那么没用的了,来看下错误的开始吧,一开始小的错误就不说了,什么没扫到包,什么字段不对应,什么依赖版本过低,自己的马虎出的问题,自己细心点就好了,没什么难度 The...

Jaeger_Java的博客 280

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Mysql&Oracle比较棒棒的一些常用sql_不断总结-ing_南国

不同的数字对应不同的值 CASE pro.sale_state WHEN 0 THEN '未销售' WHEN 1 THEN '销售中' WHEN 2 THEN '销售完成' END AS sale_state_Str, 数据库连接池Python常用写法 默认系统时间 CURRENT_TIMESTAMP Sql拼接(Jfinal) sqlExcept.append(" AND DATE_FORMAT(products.createdTi

Jaeger_Java的博客 218

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MySQL建库建表操作学习笔记

SQL(Structured Query Language,结构化查询语言)是用于在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。:用于定义对数据库对象(库、表、列、索引)的操作,如 CREATE、DROP、ALTER、RENAME、TRUNCATE 等。保存可变长度的字符串(可包含字母、数字以及特殊字 符)。:用于定义对数据库记录的操作,如 INSERT、DELETE、UPDATE、SELECT 等。:用于定义对数据库、表、字段、用户的访问权限和安全级别,如 GRANT、REVOKE 等。

Eternitycai的博客 217

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL 单点详解(14)

给定一条 SQL,联合索引的列该怎么排呢?

2401_88601046的博客 343

Flink SQL 连接器实战:MySQL Source、Flink CDC 与 JDBC Sink 全解析

提供有界流读取,适合批处理和维表场景,简单直接但无法感知变更。MySQL CDC提供无界流读取,通过「全量快照 + binlog 增量」的方式实现实时捕获,是实时数仓的核心入口,但需要 MySQL 侧正确配置 binlog 和权限。JDBC Sink负责结果回写,关键在于区分仅插入流和更新流,更新流必须依赖主键完成 upsert。掌握这三者的差异,本质上就是掌握了 Flink 中「有界与无界」「追加与更新」这两组最基本的语义。

2401_83857914的博客 419

Mysql+Redis八股

慢查询是指对数据库的操作超过了 long_query_time 这个时间阈值,通常为10s,生产环境中可以自己设置。超过这个时间会被记录到慢查询日志。查询的数据量过大,会导致查询操作变慢。查询语句比较复杂,比如涉及到多个表的连接和子查询,可能导致查询变慢。索引失效的情况下,查询会退化成全表扫描,导致查询变慢。硬件资源不足,比如数据库服务器上同时运行了多个查询语句,这些语句之间竞争 cpu、内存等资源,导致服务器负载过高,查询变慢。确保开启了慢查询日志,运行语句,找到查询慢的 SQL 语句。

m0_73945675的博客 142

MySQL 的 REPEATABLE READ 到底能不能防幻读——从快照读、当前读到 Next-Key Lock

本文系统讲解 InnoDB 可重复读级别下的幻读问题:从三类读异常切入,剖析快照读依赖 MVCC、当前读依赖 Next-Key Lock 的双防线机制,用双会话实验复现幻读仍会出现的边界场景,并解释各数据库在幻读防护上行为分歧的根源。

大模型全栈工程师 · Thanks_ks 290

数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南

Oracle 提供了ORA_ROWSCN伪列(System Change Number),记录最后修改行的 SCN,类似 PostgreSQL 的xmin。实践中通常仍使用 version 字段方案,逻辑与 MySQL 完全相同。-- Oracle:通过 ORA_ROWSCN 实现乐观锁-- 更新时比对 SCN// 自定义注解// AOP 切面@Aspect@Component@Slf4jtry {

yjc_1111的专栏 392

Docker 部署 WordPress+MySQL 高可用架构

点「安装 WordPress」

一直在努力学习的菜鸟 217

SQLite 是什么?和 MySQL、Redis 有什么区别,项目中应该怎么选?

SQLite 是轻量级嵌入式关系型数据库,无需独立服务,直接通过文件存储数据,适合本地工具、桌面应用、移动端离线数据及单机轻量业务。与 MySQL 相比,它部署简单但并发写入受限;与 Redis 不同,它支持完整 SQL 与事务,适用于结构化数据持久化。三者可协同使用:MySQL 处理核心业务,Redis 实现高速缓存与计数,SQLite 降低部署复杂度。选型应基于场景需求,而非技术偏好。

栈外手记|2018 年起深耕后端开发。跳出代码栈,分享技术、项目踩坑与行业思考,看见技术之外更多可能。 322

MySQL 库表操作学习笔记

SQL(结构化查询语言)是关系型数据库标准语言,可以改库结构、设置权限、增删改查数据、维护数据库。

2403_89660238的博客 163

MySQL 8.0 双向主从复制故障修复与重建指南

MySQL 8.0 双向主从复制故障修复 SOP:XtraBackup 重建备用节点,解决 GTID 1236 / 历史日志冲突

「YYL DBA手记」 数据库 · 架构 · 运维 · 实战 yyldba.blog.youkuaiyun.com 289

MySQL 8.0停服了,信创替代的窗口正在关闭

最近跟几个做信创的朋友聊天,发现一个被忽略的问题。MySQL 8.0在今年4月正式停了官方支持,Oracle不再出安全补丁,bug也没人修了。但大量企业的业务系统还跑在上面。这事搁以前不算急,慢慢选就行了。但现在不行了,国资委79号文写得很清楚,2027年底前央国企核心系统得完成国产化替换。MySQL停服跟信创deadline撞在一起,留给MySQL用户做决定的时间不多了。我做过不少数据库迁移项目,MySQL替代这个事,坑比大多数人想的要多。今天聊几个我觉得最容易被忽视的点。

databasedb的博客 330
上一篇: 给你看的文章
下一篇: 两种上传图片的方式——91张先生
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值