MySQL中怎么找回用户数据

58次阅读
没有评论

共计 2934 个字符,预计需要花费 8 分钟才能阅读完成。

本篇文章给大家分享的是有关 MySQL 中怎么找回用户数据,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。

解决过程

1、首先想到的是直接从定时备份数据里面找回原来的用户 ID,结果发现系统只备份了十天的记录,而工作流系统上显示销售 C 只有 8 月 3 号以后的流程记录,距今已经 40 多天,从自动备份的数据里已经无法恢复。

2、所以,只能从数据库的二进制记录里分析了。进入 MySQL 数据存放的目录:

3、通过分析文件修改时间,得知删除操作的动作在 mysql-bin.000014 文件里面记录。

4、因为日志文件是二进制的,所以导出日志为 sql 文件:

mysqlbinlog –no-defaults mysql-bin.000014 workflow_operator.sql

5、日志记录比较大,导出后有 132M,压缩打包文件并下载到本地,只有 15.2M

tar -czvf workflow_operator.tar.gz workflow_operator.sql

6、在本地使用文本工具,查找所有的删除用户的操作:

*** 定位删除销售 C 的动作在 127766 行 (虽然日志记录行数比较多,但是删除用户的动作比较少,所以好排查)

7、用户 ID 找到了,所幸的是,因为只删除了用户,没有删除流程数据 (因为流程数据是要存档的),所以只要把销售 C 的旧流程数据 user_id 换成新的 user_id 就可以了,流程表比较多,通过体力劳动,找出有旧 ID 的表,然后再使用 update 语句一起更新,终于找回了所有数据:

(*** 四位由于涉及隐私,使用 XXX 代替)

update flow_fr_borrow set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_fr_cost set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_fr_fixedasset set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_fr_house_lease set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_fr_purchase set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_fr_travel set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_hr_positive set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_pr_equip_borrow_sale set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_pr_equip_return set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_sa_tepe set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_sa_safore set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_sa_authorize set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_sa_business set user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where user_id =  66adfd032ccf428d9e20e864f729xxxx  update flow_hr_trial set sel_user_id =  e76cb8bccaf74f32b94d17f74437xxxx  where sel_user_id =  66adfd032ccf428d9e20e864f729xxxx  ; update wf_hist_order set creator =  e76cb8bccaf74f32b94d17f74437xxxx  where creator =  66adfd032ccf428d9e20e864f729xxxx  update wf_hist_task set operator =  e76cb8bccaf74f32b94d17f74437xxxx  where operator =  66adfd032ccf428d9e20e864f729xxxx  update wf_order set creator =  e76cb8bccaf74f32b94d17f74437xxxx  where creator =  66adfd032ccf428d9e20e864f729xxxx  update wf_hist_task_actor set actor_Id =  e76cb8bccaf74f32b94d17f74437xxxx  where actor_Id =  66adfd032ccf428d9e20e864f729xxxx

以上就是 MySQL 中怎么找回用户数据,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2934字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)