900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MySQL 中误删表数据 如何快速恢复丢失的数据?

MySQL 中误删表数据 如何快速恢复丢失的数据?

时间:2021-11-26 23:47:57

相关推荐

MySQL 中误删表数据 如何快速恢复丢失的数据?

>>号外:关注“Java精选”公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料、开源项目。

相信后端研发的同学在开发过程经常会遇到产品临时修改线上数据的需求,如果手法很稳那么很庆幸可以很快完成任务,很不幸某一天突然手一抖把表里的数据修改错误或者误删了,这个时候你会发现各种问题反馈接踵而来。

如果身边有BDA或者有这方面经验的同事那么可以很快解决这个问题,如果没有那么希望这篇文章可以帮到你。

第一步:保证mysql已经开启binlog,查看命令:

查看binklog是否开启

showvariableslike'%log_bin%';

查看binlog存放日志文件目录(如下图,博主binlog目录为/data/mysql):

showvariableslike'%datadir%';

值为OFF,需开启,值为ON,已开启。

如果没有开启binlog,也没有预先生成回滚SQL,那可能真的无法快速回滚了。对存放重要业务数据的MySQL,强烈建议开启binlog。

第二步:进入binlog文件目录,找出日志文件

第三步:切换到mysqlbinlog目录(当线上数据出现错误的时候首先可以询问具体操作人记录时间点,这个时候可以借助mysql自带的binlog解析工具mysqlbinlog,具体位置在mysql安装目录**/mysql/bin/下)

第四步:通过mysqlbinlog工具命令查看数据库增删改查记录(必须切换到mysqlbinlog目录才有效)

例子1:查询-11-12 09:00:00到-11-13 20:00:00 数据库为 youxi 的操作日志,输入如下命令将数据写入到一个备用的txt文件中

mysqlbinlog--no-defaults--database=youxi--start-datetime="-11-1209:00:00"--stop-datetime="-11-1320:00:00"/data/mysql/mysql-bin.000015>template_coupon_tb_product_category.txt

例子2:查询-11-12 09:00:00到-11-13 20:00:00数据库为 youxi 的操作日志,并输出到屏幕上

mysqlbinlog--no-defaults--database=youxi--start-datetime="-11-1209:00:00"--stop-datetime="-11-1320:00:00"/data/mysql/mysql-bin.000015|more

例子3:查询-11-12 09:00:00到-11-13 20:00:00数据库为 youxi 的操作日志,并且过滤出 只包括 template_coupon_tb_product_category 表数据的操作记录,输入如下命令将数据写入到一个备用的txt文件中

mysqlbinlog--no-defaults--database=youxi--start-datetime="-11-1209:00:00"--stop-datetime="-11-1320:00:00"/data/mysql/mysql-bin.000015|greptemplate_coupon_tb_product_category>template_coupon_tb_product_category.txt

mysqlbinlog 命令的语法格式:mysqlbinlogmysql-bin.0000xx|mysql-u用户名-p密码数据库名--------------------------------------------------------常用参数选项解释:--start-position=875起始pos点--stop-position=954结束pos点--start-datetime="-9-2522:01:08"起始时间点--stop-datetime="-9-2522:09:46"结束时间点--database=zyyshop指定只恢复zyyshop数据库(一台主机上往往有多个数据库,只限本地log日志)--------------------------------------------------------不常用选项:-u--user=name连接到远程主机的用户名-p--password[=name]连接到远程主机的密码-h--host=name从远程主机上获取binlog日志--read-from-remote-server从某个MySQL服务器上读取binlog日志

第五步:利用第四步输出的sql语句或者txt文本进行语句过滤,重新插入数据或更新数据。

作者:一个人的孤独自白

/-mrl/p/9959365.html

往期精选点击标题可跳转

如何重构千行“又臭又长”的类,IntelliJ IDEA 几分钟搞定,真牛逼!

为什么阿里巴巴禁止使用 Executors 创建线程池,而是通过 ThreadPoolExecutor 方式?

面试官:RabbitMQ 如何保障消息 100% 投递成功、消息幂等性?

面试官:说一说 MySQL 与 PostgreSQL 的区别,如何技术选型?

Spring 循环依赖,源码详细分析,真的必须要三级缓存吗?

为什么 MySQL 不建议使用 NULL 作为列默认值?

为什么放弃使用 Hibernate、JPA、Mybatis 数据持久化框架,最终选择 JDBCTemplate!

Spring Cloud+OAuth2+Spring Security+Redis 实现微服务统一认证授权,附源码

Java 中 Switch 是如何支持 String 字符串?为什么不支持 long 类型?

为什么阿里巴巴禁止开发人员 boolean 类型变量使用 isXXX 来命名?

为什么 MyBatis 在国内非常流行,而国外 Java 工程师却不愿意使用?

点个赞,就知道你“在看”!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。