起因:测试环境数据库user表数据被覆盖了
1.查看binlog日志开启状态
show variables like '%log_bin%';
binlog文件存放在mysql/data目录下,mysql-bin.000001就是binlog文件
2.查看binlog日志内容
show binlog events in 'mysql-bin.000001';
log_name:日志名称
Pos:事件节点
Event_type:事件类型
Server_id:服务器id
End_log_pos:事件结束节点
info:执行了哪些信息
3.通过binlog恢复数据
linux 命令行
/usr/bin/mysqlbinlog --database=user /usr/local/mysql/data/mysql-bin.000001 | /usr/local/mysql -uroot -p123456 -v user
/usr/bin/mysqlbinlog 为binlog命令
--database=user 指定数据库为user的日志
/usr/local/mysql/mysql-bin.000001 为binlog日志
4.通过指定位置恢复数据
linux命令行:
/usr/bin/mysqlbinlog --start-position=120 --stop-position=14521 --database=user /usr/local/data/mysql-bin.000001 | /usr/local/mysql -uroot -p123456
--start-position=120 开始位置
--stop-position=14521 结束位置
5.通过指定时间恢复数据
linux命令行:
/usr/bin/mysqlbinlog --start-datetime="2022-10-05 00:00:00" --stop-datetime="2022-10-17 23:59:59" --database=user /usr/local/mysql/data/mysql-bin.000001 | /usr/local/mysql -uroot -p123456
--start-datetime="2022-10-05 00:00:00" 开始时间
--stop-datetime="2022-10-17 23:59:59" 结束时间