MySQL update回滚 mysqlbinlog回复数据

MySQL update回滚 mysqlbinlog回复数据

大家好,又见面了,我是全栈君。

 

是否启用了日志
show variables like 'log_%';
怎样知道当前的日志
mysql> show master status;
显示二进制日志数目
mysql> show master logs;

看二进制日志文件用mysqlbinlog
shell>mysqlbinlog mail-bin.000001
或者shell>mysqlbinlog mail-bin.000001 | tail

重点文档:https://github.com/danfengcao/binlog2sql

mysqlbinlog: 未找到命令

打开方法:mysql配置文件中找到#log-bin=mysql-bin,并取消注释即可。

要用到mysqlbinlog,mysqlbinlog在mysql目录bin里,切换目录后执行mysqlbinlog提示

-bash: mysqlbinlog: command not found

找不到命令,那就先解决这个问题,解决方法:

find  / -name mysqlbinlog -print

如图:

MySQL update回滚 mysqlbinlog回复数据

只有/www/server/mysql/bin/mysqlbinlog 一条记录,这是我mysql的目录

然后把mysqlbinlog做个软连接到/usr/bin

 ln -fs /www/server/mysql/bin/mysqlbinlog /usr/bin

然后再执行find  / -name mysqlbinlog -print查看

MySQL update回滚 mysqlbinlog回复数据

你会发现多了一条,报错忽略。现在,就可以正常使用mysqlbinlog了。

我的做法是导出sql文本,在本地恢复,导出方法是:

mysqlbinlog /www/server/linshi/mysql-bin.000087 --start-datetime='2018-01-09 00:00:00' --stop-datetime='2018-01-10 00:00:00' > /www/server/linshi/1233.sql

/www/server/linshi/mysql-bin.000087  是日志文件所在

/www/server/linshi/1233.sql 是要导出的位置

很快执行完毕,切换到相应目录后就会看到1233.sql文件,再导入数据库恢复吧

执行的语句

sudo mysqlbinlog /usr/local/mysql/var/mysql-bin.000116 --start-datetime='2020-04-02 10:00:27' --stop-datetime='2020-04-02 10:18:27'>/tmp/123.sql

 

MySQL update回滚 mysqlbinlog回复数据MySQL update回滚 mysqlbinlog回复数据

获取文件进行恢复
1、直接进行恢复
mysqlbinlog /usr/local/mysql/data/binlog.123456 | mysql -u root -p
2、按位置进行恢复 主要参数[–stop-position –start-position]
mysqlbinlog –stop-position=368312 –start-position=368315 /usr/local/mysql/data/binlog.123456 | mysql -u root -p
这里的位置可以通过读取binlog文件进行查看,不过这个也必须自己知道进行了那些操作。后面说如果看到的文件都是乱码或者看不到真正sql的问题
3、按时间点进行恢复 主要参数 [–stop-datetime –start-datetime]
mysqlbinlog –stop-datetime=”2005-04-20 9:59:59” –start-datetime=”2005-04-20 10:01:00” /usr/local/mysql/data/binlog.123456 | mysql -u root -p
时间点恢复跟位置恢复道理一样,也必须知道具体操作的时间和要恢复到什么时间
4、不同的方式进行恢复
1、如果是登录到了mysql并且binlog也是在一台服务器上切一般binlog的目录会在mysql安装目录下data文件下那么就可以直接进行恢复
这种情况可以直接在mysql下执行命令
2、如果是只拿到了binlog文件,并且是线下的服务器需要先尝试数据正确后再导入生产的
这种情况可以先把binlog文件输出到你制定的sql文件如:
mysqlbinlog /usr/local/mysql/data/binlog.123456 > /tmp/mysql.sql
这样的输出有可能是看不到任何有价值的sql如果想看到标准的sql可以使用
mysqlbinlog –base64-output=DECODE-ROWS -v /usr/local/mysql/data/binlog.123456 > /tmp/mysql.sql

上面的情况也可能得到的sql不是想要的需要进行替换,那么如果数据量少手动替换@1@2就可以如果比较多建议使用开源工具mysql2binlog github地址:https://github.com/danfengcao/binlog2sql

最后一点线上数据一定要当心,虽然mysql有binlog机制,但还是希望人尽量少用它!

问题:

binlog2sql 回滚sql 产生的sql 为空,错误的sql 找到了,生成回滚sql 的时候为空,这是为什么呢

就是找到日志文件了,但是在生成回滚sql 的时候,生成的sql 为空,有人遇到过吗 欢迎大佬指正,小弟感激不尽!

my.cnf配置文件如下:

MySQL update回滚 mysqlbinlog回复数据MySQL update回滚 mysqlbinlog回复数据

参考:https://blog.csdn.net/flower_vip/article/details/79032999

参考:https://my.oschina.net/u/3486280/blog/1605031

Mysql binlog 查看方法

查看二进制文件,并搜索关键字

mysqlbinlog master-bin.000014|grep -5a "DROP TABLE"

MySQL update回滚 mysqlbinlog回复数据

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111828.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vr的开发流程_vr虚拟现实 需要设备

    vr的开发流程_vr虚拟现实 需要设备http://www.unitymanual.com/forum.php?mod=viewthread&tid=31034 原文出自游戏蛮牛本文介绍虚拟现实项目开发流程,共大家参考与学习,也希望各位提出意见…通过将现实中真实存在的构建在虚拟平台上,使得用户可以不在受时间、地点、位置和区域的限制来完成一些操作。=================================开发流程=

    2025年11月8日
    3
  • 安卓耳机接口(我读懂了你作文800字)

    一文读懂Android/iOS手机如何通过音频接口与外设通信0背景1音频口通信特点1.1通用性强1.2速率低1.3小信号2手机音频口通信原理2.1音频接口2.2音频通信模型与信号组成2.2.1通信模型2.2.2音频通信使用的信号3手机音频口全双工通信方案3.1设备→手机3.2手机→设备4案例分析(以2FSK

    2022年4月15日
    54
  • 什么是php递归算法_PHP递归算法(一)

    什么是php递归算法_PHP递归算法(一)在前面的文章中,我们为大家介绍了PHP算法系列之《PHP随机取一算法》和《PHP冒泡排序算法》,需要的朋友可以了解学习。本篇文章我们将继续为大家带来常见的PHP算法,即PHP递归算法。在PHP开发过程中,递归算法通常用于无限极分类。那么所谓递归就是一种函数调用自身的机制。简单来说就是在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用。…

    2022年8月11日
    6
  • camera接口—MIPI CSI-2接口、DVP接口和FPD-Link III LVDS、GMSL等接口对比

    camera接口—MIPI CSI-2接口、DVP接口和FPD-Link III LVDS、GMSL等接口对比 接口类型 信号线 极限速率 最大速率 抗干扰能力 适用摄像头像素   PCBlaypuit MIPICSI-2 串口 CLKP/N、DATAP/N 最大支持4-lane 一般2-lane可以搞定   Gbps 低压差分信号,产生的干扰小,抗干扰能力也强 支持800W以上 …

    2022年4月29日
    141
  • Ubuntu下VLC播放器的字幕乱码问题

    Ubuntu下VLC播放器的字幕乱码问题为了为可能进入的实验室实习做准备,今天重新装上了Ubuntu,今天的安装总的来说还是顺利多了。在播放软件上,这次我选择了VLC,因为感觉mplayer虽然强大,但是始终界面不是十分友好。而VLC也是灰常强大的。但是,在Linux下播放电影时,经常会遇到乱码的问题,下面就谈谈我的经验。造成字幕乱码的原因可能有两个:1.GB字符的解码:因为Linux下中文默认采取utf-

    2022年7月15日
    19
  • 帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

    帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)  作为一名前端工程师,必须搞懂JS中的prototype、__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们。这里说明一点,__proto__属性的两边是各由两个下划线构成(这里为了方便大家看清,在两下划线之间加入了一个空格:__proto__)。  现在正式开始!让我们从如下一个简单的例…

    2022年7月23日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号