MySQL update回滚 mysqlbinlog回复数据_log-bin=mail-maysql-bin-程序员宅基地

技术标签: Mysql  

 

是否启用了日志
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

如图:

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

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

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

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

你会发现多了一条,报错忽略。现在,就可以正常使用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

 

获取文件进行恢复
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配置文件如下:

参考: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"

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lxw1844912514/article/details/105264966

智能推荐

统信UOS手动更新系统时备份失败,如何用命令自动更新系统_统信系统1060更新备份失败-程序员宅基地

文章浏览阅读1.4w次。统信UOS系统的每次更新都会适配更多的东西,所以更新系统是很有必要的。1.在 设置 可以检查更新系统。正常流程是 检查更新-下载文件-安装更新-备份文件-更新完毕 重启即可。2.但是一些用户就不会那么顺利,他们在安装更新过程中 系统备份失败 ,导致系统无法正常更新。 此时我们的手动更新系统就行不通了,只能用命令更新系统了。打开电脑终端 输入命令 sudo apt update 还有用户密码 检查更新系统检查更新完,再输入 sudo apt dist-upgrade 进行系统更新,正常更_统信系统1060更新备份失败

python--(operate excel → xlwt )_xlsxoperate python方法-程序员宅基地

文章浏览阅读339次,点赞2次,收藏3次。python生成excel表格:1.在编译器中导入操作excel的包 ----> xlwt (操作写入excel) (在虚拟坏境运行 pip install xlwt 或在编译环境搜xlwt安装)2.运行如下代码:1:生成一个excel表格:import xlwt# 创建一个workbook设置编码workbook = xlwt.Workbook(encoding='utf-8..._xlsxoperate python方法

Tutorial for building J2EE Applications using JBOSS and ECLIPSE-9_the standard for deploying soap web service-程序员宅基地

文章浏览阅读2k次。Chapter 9 . Creating Web Services :Web services promises to be the next generation of software development. In essence, a web service is a means of interfacing to web or enterprise application_the standard for deploying soap web service

Trace - 一文读懂tracepoint_trace point-程序员宅基地

文章浏览阅读7k次,点赞2次,收藏20次。tracepoint是Linux内核静态定义的一些调试点,它分布于内核的各个子系统中,然而在实际工作中可能很多人并没有用过这个功能,或者对它没有太多了解,那么就通过本文一起来了解下tracepoint吧。tracepoint是内核预先定义的静态探测点,可以用于挂载钩子函数来做trace。当没有钩子函数时,它几乎没有损耗,只有挂载了钩子函数才会真正启用trace功能。这个钩子函数可以由开发者编写内核module来实现,并且需要在钩子函数中获取我们调试所需要的信息并导出到用户态,这样我们就可以获取内核运行时的信_trace point

Android使用谷歌插件,详解谷歌官方教程 Android插件ADT 9.0.0-程序员宅基地

文章浏览阅读473次。【51CTO译稿】ADT为Android开发工具(Android Development Tools)简称,是在强大的、集成的环境Eclipse IDE中构建Android应用程序插件。ADT扩展了Eclipse的功能,让您快速建立新的Android项目,创建一个应用程序的用户界面,加上Android框架的API组件、调试应用程序使用Android SDK工具,以便APK分发给应用程序。首先,强烈..._谷歌安卓版监控插件

Nearest Neighbor算法对Cifar-10数据集进行分类_cifar10 分类属于哪种算法-程序员宅基地

文章浏览阅读8.9k次,点赞2次,收藏5次。1.preliminaryNearest Neighbor 算法的思想是同一类型的东西总是有一些相似点,在某个空间里是聚集在一起的。比如说对于一直狗和鸡,属于两个不同的物种,鸡有两条腿而都狗有四条腿,狗的叫声是“汪汪”而鸡的叫声是“咯咯”。所以不同的特诊会使鸡和狗聚集在两块不同的区域。一般在现实应用中是不会用1NN的,我们用的更多KNN,至于k的大小是多少,针对不同的问题答案是不一样的,这_cifar10 分类属于哪种算法

随便推点

Acme CAD Converter 2015 8.7.0.1440 Multilingual 1CD CAD图形文件转换和查看软件-程序员宅基地

文章浏览阅读1.8k次。Acme CAD Converter 2015 8.7.0.1440 Multilingual 1CD CAD图形文件转换和查看软件一款专业的CAD图形文件转换和查看软件,支持DWG DXF DWF ( AutoCAD v2.x-2013)格式转换,输出矢量格式支持DWG, DXF, PDF,WMF,SVG, HPGL, PDF, CGM, EPS。输出光栅格式支持BMP, GIF_acme cad converter2015

计算机组成原理运算器设计实验之8位可控加减法电路设计_第1关:8位可控加减法电路设计-程序员宅基地

文章浏览阅读2.5w次,点赞36次,收藏152次。这个实验的本意是用一位全加器和逻辑门搭建电路。用全加器和异或门也可以完成。这里涉及两个“异或”的知识点:1.位变量a和0异或,结果为a;和1异或,结果为~a(取反)2.溢出标志可以用最高位(符号位)进位和次高位进位异或得到。即这两个进位相同则不溢出,否则溢出。步骤1步骤2:可以通过复制拖拽得到如下图步骤3,连线如图步骤4,保存并复制保存代码步骤5将复制的代码粘贴到Educoder实验的代码框。..._第1关:8位可控加减法电路设计

Netty 解决 TCP 粘包/拆包_netty tcp 多个命令合并到一起啦-程序员宅基地

文章浏览阅读198次。在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对粘包和拆包问题进行描述,然后介绍其常用的解决方案,最后会对Netty提供的几种解决方案进行讲解。这里说明一下,由于oschina将“jie ma qi”认定为敏感文字,因而本文统一使用“解码一器”表示该含义1. 粘包和拆包产生粘包和拆包问题的主要_netty tcp 多个命令合并到一起啦

Twitter的分布式自增ID算法snowflake (PHP版本)_twitter/snowflake php-程序员宅基地

文章浏览阅读659次。twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移到Cassandra,因为Cassandra没有顺序ID生成机制,所以开发了这样一套全局唯一ID生成服务。snowflake的结构如下(每部分用-分开):0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000..._twitter/snowflake php

Linux一键部署duckchat,宝塔面板部署DuckChat(翻译:鸭信)- 一个简约好用的网络聊天平台...-程序员宅基地

文章浏览阅读1.1k次。演示图介绍DuckChat 是一套完整的私有即时通讯(instant message)解决方案,含服务器端程序、客户端(含iOS、Android、PC等)程序。经过DuckChat,站点管理员可以快速的在自己服务器上搭建起一套私有的即时通讯服务,用户可以运用客户端连接至此服务器进行信息交互。但是不知道怎么没人维护了,官网也没了,装置文档一个找不到。不过还能再GitHub上看到项目,而且最近的更新是..._duckchat安装报错

Android Ant 和 Gradle 打包流程和效率对比-程序员宅基地

文章浏览阅读3.7k次。一、Ant 打包:(下载ant、配置环境变量就不说了)1、进入命令行模式,并切换到项目目录,执行如下命令为ADT创建的项目添加ant build支持:android update project -p . -t "android-17"2、build脚本默认target是help,所以会显示如上信息,修改target为debug或release就可以像无ant时一样编

推荐文章

热门文章

相关标签