mysql数据库navicat数据同步时误删除部分数据的解决

 更新时间:2024年04月29日 11:56:24   作者:小树苗_浇水  
本文主要介绍了mysql数据库navicat数据同步时误删除部分数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

背景介绍

听说过删库跑路被抓的,今天就碰到升级服务器(Alibaba Cloud Linux ----> Ubuntu)原因是taos3.2不支持Alibaba Cloud Linux系统!
为了保险起见把现在这个数据库里的数据都备份一份,为了不耽误同事们继续开发所以需要将需要升级的数据库在另一个服义务器中再跑一份出来!
有navicat帮忙数据迁移很方便!

在这里插入图片描述

但是犯错就在图方便上了!
因为迁移的这两个数据库中有几个名字相同的库!然后再数据同步时直接把原表中的数据删除了!
我的天呢尤其是 bas_file表,这里面存的都是minio里的文件!

任务需求

现在无论如何都要把数据恢复回来!要不然工作不保!
有好多方法:

一.数据恢复备份(这个我我尝试了,需要实现开启备份)

在这里插入图片描述

就是这个东西!谁没事会保存这个!(我就保存了)

这个恢复很简单,我要讲的不是这个简单的!

二.利用bin_log日志来完成

查看有没有开启bin_log
现在服务器中进入到mysql服务

mysql -u root -p
show variables like 'log_%'

在这里插入图片描述

可以看得到 log_bin是开启状态(其实不用太过关心,一般大家都是开启的,尤其是安装liunx版本的mysql时,如果真的没开 再去看其他博客吧)
开启了bin_log日之后,就会有binlog文件生成咱们现在过去找

show master logs;

在这里插入图片描述

可以看得到文件名与大小都被打印出来,现在就去找这两个文件(先退出mysql模式:exit)

find / -name binlog.000004

在这里插入图片描述

找到了他的位置

在这里插入图片描述

找到他们了
然后根据时间确定 是哪binlog
可以看得到000004后缀的这个时4月28 11:55 到 4月29 9:56,我是4月28 下午1:30左右删除的数据,所以咱们把重点放在binlog.000004上就行了。

这个文件将会救回你的数据
复制一份到你想要的位置 cp binlog.000004 /you/ (位置自己选)
然后 cd /you/ (别忘记换成自己的路径)
使用

mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v -d crmeb /mysqldb/binlog.000004 > data.sql

上面这个语句多半你会遇到问题!
大概报错是mysqlbinlog 找不到
在你这个目录不用动 使用软连接链接过来一个就行了

ln -s /www/server/mysql/bin/mysqlbinlog mysqlbinlog

在这里插入图片描述

能用就行了。
先用这个生成一个事件日志文件
日志大概样子:

在这里插入图片描述

根据咱们要找的时间咱们找到他对一个的开始id和结束id
我大概是1:30左右删除的 这里我就选择这个
然后使用下面这个语句生成时间段内对数据进行的操作语句

mysqlbinlog --no-defaults --base64-output=DECODE-ROWS --start-position=3367047 --stop-position=3747440 -v binlog.000004 > insertdata.sql

会生成一个 insertdata.sql文件大概样子如下:

在这里插入图片描述

可以看得到,每步的操作都会被打印出来
往下翻找到咱们误删除的地方:

在这里插入图片描述

这就得到了当时删除数据的详细信息,根据这些信息就看别写insert语句再插入进去就行了。

总结

操作数据库时 要有留备份的习惯!
找到binlog.000004文件后可以复制到本地,用本地的mysqlbinlog操作效果是一样的。

在这里插入图片描述

最后的 delete转insert可以借助excel实现,这里就不赘述了

到此这篇关于mysql数据库navicat数据同步时误删除部分数据的解决的文章就介绍到这了,更多相关mysql navicat 误删数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL中EXPLAIN命令详解

    MySQL中EXPLAIN命令详解

    在这里我们将介绍的是MySQL中EXPLAIN解释命令,希望对大家有所帮助
    2014-08-08
  • MySQL中必须了解的13个关键字总结

    MySQL中必须了解的13个关键字总结

    这篇文章主要为大家详细介绍了MySQL中必须了解学会的13个关键字,文中的示例代码简洁易懂,对我们掌握MySQL有一定的帮助,需要的可以了解下
    2023-09-09
  • MySQL利用frm文件和ibd文件恢复表结构和表数据

    MySQL利用frm文件和ibd文件恢复表结构和表数据

    当MySQL数据库遭遇崩溃或数据丢失时,利用备份的 .frm 和 .ibd 文件恢复数据是一种有效的解决方案,.frm 文件包含表的结构信息,而 .ibd 文件则存储表的实际数据,本文将提供一个详细的步骤指南,演示如何利用这些文件恢复MySQL表数据和表结构,需要的朋友可以参考下
    2024-05-05
  • MySQL中的视图特性使用及说明

    MySQL中的视图特性使用及说明

    视图是虚拟表,由查询定义,包含列和行数据,其与基表数据相互影响,修改任一方均会同步变化,创建需唯一命名,不可添加索引或触发器,可提升安全性,ORDER BY在视图中优先,但被SELECT中的覆盖
    2025-10-10
  • 后端MySQL数据库四大范式详细解析

    后端MySQL数据库四大范式详细解析

    数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,这篇文章主要介绍了后端MySQL数据库四大范式的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-12-12
  • asp+mysql+utf8 网页出现乱码问题的解决方法

    asp+mysql+utf8 网页出现乱码问题的解决方法

    无论在网页中加多少UTF8的定义,显示的结果都还是会有一些小格子,反而定义为gb2312,显示完全正常
    2014-03-03
  • mysql请求阻塞问题解析

    mysql请求阻塞问题解析

    这篇文章主要介绍了mysql请求阻塞问题解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10
  • MySQL如何开启用户远程登录权限

    MySQL如何开启用户远程登录权限

    这篇文章主要介绍了MySQL如何开启用户远程登录权限问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • window下mysql 8.0.15 安装配置方法图文教程

    window下mysql 8.0.15 安装配置方法图文教程

    这篇文章主要为大家详细介绍了window下mysql 8.0.15 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • Mysql最新版8.0.21下载安装配置教程详解

    Mysql最新版8.0.21下载安装配置教程详解

    这篇文章主要介绍了Mysql最新版8.0.21下载安装配置教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论