MySQL恢复不小心误删的数据记录(binlog)-生产实操_mysql binlog 文件被清理恢复
跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。也许是互联网未来10年中最好的一年。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。
mysqlbinlog --base64-output=decode-rows -v binlog.003216 --result-file=mysql-bin-sql-003216.sql
mysqlbinlog --base64-output=decode-rows -v binlog.003218 --result-file=mysql-bin-sql-003218.sql
mysqlbinlog --base64-output=decode-rows -v binlog.003217 --result-file=mysql-bin-sql-003217.sql
4找到你误删的数据
一般来说你误删的数据会大致记下来一个标识。我这里是shop_id。记得被删除的数据的是多少,那么我们就可以模糊搜索该条件:
grep ‘1630131736490098689’ mysql-bin-sql-003217.sql -C 200或
grep ‘1630131736490098689’ mysql-bin-sql-003217.sql -C 200 --> 1630131736490098689.sql 输出文件查看下delete from 的脚本。
确认是 mysql-bin-sql-003217.sql文件
5.通过linux命令,查找需的数据,成为需要的数据(#每完成一份正确的数据,都及时备份下文件。以免操作错误重头开始)
grep 'DELETE FROM' mysql-bin-sql-003217.sql -C 200 --> delete20231021.sql
#每完成一份正确的数据,都及时备份下。以免操作错误重头开始
cp delete20231021.sql delete20231021.sql.bak
#拆分两个表的操作数据SQL(过程是通过反复操作及分析的结果)
grep 'DELETE FROM `lirimall_server`.`product_item`' mysql-bin-sql-003217.sql -C 200 --> deleteproduct_item20231021.sql
grep 'DELETE FROM `lirimall_server`.`product`' mysql-bin-sql-003217.sql -C 200 --> deleteproduct20231021.sql
6。分别处理两个操作数据的文件
删除无效数据,
#包括特殊字符"",#,|"这些的处理,这个只能通过SQL工具测试后有异常再更新文件
mkdir product_itme
mkdir product
cp deleteproduct20231021.sql ./product
cp deleteproduct_item20231021.sql ./product_item/
cd product
#备份数据
cp deleteproduct20231021.sql deleteproduct20231021.sql.bak
#删除无用的数据,特殊字符的数据
vi deleteproduct20231021.sql
#文件命令:
#显示行数
:set nu
#删除1-200行的数据
:1,200d
#删除336581~336938d行的数据
:336581,336938d
#搜索“# at”的数据
/# at
#到文件的结尾处查看下
:$
#包括特殊字符"",#,|"这些的处理,这个只能通过SQL工具测试后有异常再更新
7.通过linux的sed 命令把delete删除语句替换为insert into语句(有问题可反复执行-一定要备份文件)-
sed -i 's/^### //g' deleteproduct20231021.sql
sed -i "s/^DELETE FROM/INSERT INTO/g" deleteproduct20231021.sql
sed -i "s/^WHERE/VALUES(/g" deleteproduct20231021.sql
sed -i '/INSERT INTO/i );' deleteproduct20231021.sql
cat deleteproduct20231021.sql | awk -F"=|" '{
if($0 ~ /^INSERT|^VALUES|^);/){
print $0;
}else{
printf $2",";
};
}' > delete2insertproduct20231021.sql
sed -i "s/,);$/);/g" delete2insertproduct20231021.sql
vi delete2insertproduct20231021.sql
#删除开头和补齐结束的SQL
8.通过处理后的insert into语句在SQL工具(我是HeidiSQL)逐步执行下,有异常可反复操作步骤6和7,以达到需要的效果。
注:一定不要在原数据库实例上操作。可以新建一个数据库实例和表进行操作。我是在测试环境的数据库进操作验证的,验证的数据同步到生产。再进行回滚数据的。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。
也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。
面试准备
面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
但做不出来也不会一票否决,面试官也会给你提供一些思路。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-xJxZssKA-1712839514940)]

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)