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,下周一还是给恢复了。。

浙公网安备 33010602011771号