mysql误删除恢复

一、首先确定数据库是否开启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 > 库.sql2.2、导入库中mysql -uroot -p 库名 <库.sql2.3、检查数据三、全库备份恢复单个表的数据流程:3.1、从全备份中提取出该表的建表语句sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `表`/!d;q' 全备SQL > 表.sql3.2、提取该表的insert into语句grep -i 'INSERT INTO `表`' 全备SQL >>表.sql3.3、导入到对应的库中mysql 库名 < 表.sql
3.4、检查数据四、根据mysqlbinlog恢复备份之后的数据4.1、查看当前binlogshow master status; 4.2、把binlog转移/*这个时候要将当前的binlog日志拷贝到其他目录,以免后续操作对binlog日志产生影响*/cp /var/lib/mysql/mysql-bin.000001 /home4.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=1INI 复制 全屏在线修改
set binlog_rows_query_log_events=1;---end------
本文来自博客园,作者:|是吴啊|,




    推荐阅读