MySQL 的 binlog 如何恢复数据?

  1. 找到最后一次成功备份的日期和时间,假设是在 2021-06-01 10:00:00 进行的备份。
    登录到 MySQL 服务器,使用 mysqlbinlog 命令,查找从备份时间到误操作时间之间的 binlog 日志文件。命令格式如下:
 mysqlbinlog --start-datetime="2021-06-01 10:00:00" --stop-datetime="2021-06-02 10:00:00" /var/lib/mysql/binlog.000001 > mysqlbinlog.txt
 其中,--start-datetime 表示起始时间,--stop-datetime 表示结束时间,/var/lib/mysql/binlog.000001 是 binlog 日志文件的路径,> mysqlbinlog.txt 表示将输出结果保存到 mysqlbinlog.txt 文件中。
 

 

  1. 打开 mysqlbinlog.txt 文件,查找误删除数据的操作。
  2. 复制误删除操作的 binlog 日志。
  3. 回到 MySQL 控制台,使用 mysqlbinlog 命令来还原误删除的操作。命令格式如下:
 mysqlbinlog --no-defaults mysqlbinlog.txt | mysql -u username -p dbname
 其中,--no-defaults 表示不使用默认配置文件,mysqlbinlog.txt 是保存误删除操作的 binlog 日志文件,username 是 MySQL 用户名,dbname 是要还原的数据库名称。
 

恢复成功后,重启 MySQL 服务器。