一、首先确定数据库是否开启binlog日志【mysql误删除恢复】MySQL> show variables like '%log_bin%';+---------------------------------+---------------------------------------+| Variable_name| Value|+---------------------------------+---------------------------------------+| log_bin| ON|| log_bin_basename| /home/mysql/mysql/lib/mysql-bin|| log_bin_index| /home/mysql/mysql/lib/mysql-bin.index || log_bin_trust_function_creators | OFF|| log_bin_use_v1_row_events| OFF|| sql_log_bin| ON|+---------------------------------+---------------------------------------+6 rows in set (0.00 sec)
二、全库备份恢复单个库的数据流程:2.1、从全备份文件中将需要的库的建表语句和INSERT数据拿出来sed -n '/^-- Current Database: `库名`/,/^-- Current Database: `/p' 全备SQL > 库.sql
2.2、导入库中mysql -uroot -p 库名 <库.sql
2.3、检查数据三、全库备份恢复单个表的数据流程:3.1、从全备份中提取出该表的建表语句sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `表`/!d;q' 全备SQL > 表.sql
3.2、提取该表的insert into语句grep -i 'INSERT INTO `表`' 全备SQL >>表.sql
3.3、导入到对应的库中mysql 库名 < 表.sql
3.4、检查数据四、根据mysqlbinlog恢复备份之后的数据4.1、查看当前binlogshow master status;
4.2、把binlog转移/*这个时候要将当前的binlog日志拷贝到其他目录,以免后续操作对binlog日志产生影响*/cp /var/lib/mysql/mysql-bin.000001 /home
4.3、把binlog转换为sql文件/*执行命令*/ 转换binlog日志为sqlmysqlbinlog -d 库名 mysql-bin.000001 >001bin.sql#-d指定库
4.4、编辑001bin.sql将里面的误操作命令(DROP命令)全部删除接下来恢复备份之后被删除的数据mysql -uroot -p 库名 < 001bin.sql 遇到报错问题编辑001bin.sql文件,将报错信息中提示的某行以下文件全部删除然后重新导入
五、完成六、按时间导出binlogmysqlbinlog --no-defaults --start-datetime="2021-08-11 14:30:00" --stop-datetime="2021-08-11 15:42:00" mysql-bin.000377 >AA.sql
七、binlog查看原生语句方法配置文件修改,需重启
[mysqld]bingo_rows_query_log_events=1
INI 复制 全屏在线修改
set binlog_rows_query_log_events=1;
---end------
本文来自博客园,作者:|是吴啊|,
推荐阅读
- MySQL误删数据后切勿跑路
- 如何判断MySQL实例出了问题
- 微软|影响CPU性能 微软删除Win11秒针:第三方软件给改回来了
- MySQL GTID主备切换协议
- 阿里大佬作出解释:MySQL真的不建议delete删除数据
- c语言opencv删除图片
- 公司用的 MySQL 团队开发规范,太详细了,建议收藏
- 详细介绍MySQL中约束的用法
- 微信被对方删除并拉黑会怎么样?
- MySQL如何解决幻读