MySQL如何使用binlog恢复数据???

1、问题

  测试环境数据库表,要更新一个字段值,一个不小心忘记加where条件了,结果全表更新了数据,导致测试环境业务系统不可用。

  select * from table_name where id =3083;
      update table_name set unique_code = 1643820158528184322;

2、如何恢复

  要根据MySQL 8.0的binlog恢复表数据,可以按照以下步骤进行操作:

2.1、确保MySQL服务器已启用binlog功能。你可以通过在MySQL配置文件中设置以下参数来启用binlog

[mysqld]
server_id=1
log_bin=/var/log/mysql/mysql-bin.log

2.2、重启MySQL服务器以使配置更改生效,执行需要恢复的表数据之前的binlog操作,使用mysqlbinlog工具将binlog文件转换为可读的SQL语句。例如,运行以下命令:

mysqlbinlog /var/log/mysql/mysql-bin.000001 > binlog.sql

2.3、编辑binlog.sql文件,并仅保留需要恢复的表数据部分。删除不需要的语句,创建一个新的数据库,或在现有的数据库中创建一个新的表,以恢复表数据

使用mysql命令行工具连接到MySQL服务器,然后将编辑后的binlog.sql文件导入到MySQL中。例如,运行以下命令:

mysql -u root -p your_database < binlog.sql

3、MySQL8.0版本

  测试环境的表,每天没有备份。无法快速恢复,因为周五快下班才搞崩,DBA尝试了,当时说第三方工具无法解析8的lbinlog,下周一还是给恢复了。。

posted @ 2023-08-18 17:27  LUDAGOGO  阅读(329)  评论(0)    收藏  举报