mysql误删除数据

一.有几种解决方案:

1.使用备份:

如果有定期备份数据库的习惯,并且最近的备份包含了误删除的数据,可以通过还原备份来恢复数据。请注意,恢复数据将覆盖当前的数据库状态,所以在执行恢复前请确保备份是最新的。

2.使用日志文件:

MySQL数据库可以开启binlog功能,记录数据库中每个操作的日志。可以通过解析binlog日志来找回误删除的操作。可以使用"mysqlbinlog"命令来解析binlog文件,并通过该命令生成的SQL语句进行数据恢复。

3.使用第三方工具:

有些第三方工具,如"Undrop for InnoDB"和"MySQL Recovery Tool"等,可以专门用于恢复误删除的MySQL数据库数据。这些工具可以扫描数据库的数据文件,尝试找回被删除的数据。

无论使用何种方法,重要的是尽快停止对数据库的操作,并且避免在误删除的表中进行任何更改,以免覆盖被删除的数据。在使用任何恢复方法之前,建议在测试环境中进行尝试,以确保数据恢复的准确性。

二.如何使用备份

1.使用命令行工具备份:

MySQL提供了命令行工具mysqldump来备份数据库。可以使用以下命令来备份整个数据库

mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件路径]

其中,[用户名]是连接数据库的用户名,[密码]是连接数据库的密码,[数据库名]是要备份的数据库名称,[备份文件路径]是备份文件的保存路径。

2.使用脚本自动备份

为了实现定期备份,可以使用脚本来自动执行备份操作。可以编写一个shell脚本,将备份命令添加到脚本中,并使用任务调度工具(如cron)来定期执行脚本。

创建.sh文件

具体内容为:

mysqldump -uAAA -pBBB CCC> ~/mysql-backup/DDD-$(date +'%Y%m%d-%H%M%S').sql

其中字符对应的含义:

AAA:用户名

BBB:密码

CCC:数据库名称

/mysql-backup/DDD:备份文件具体存放路径

三.如何日志文件恢复

首先必须要:开启二进制日志,才能进入后面的操作

1.先去 /var/lib/mysql/该路径下找到指定日期对应的binlog记录

2-再任意路径下,输入如下内容
mysqlbinlog --no-defaults --base64-output=decode-rows -vv -d AAAA /var/lib/mysql/mysql-bin.000032 | grep -B 30 -A 20 'BBB表'> ~/binlog.txt

上述各参数的含义:

--no-defaults参数:不使用默认配置文件。 

--base64-output=decode-rows参数:将binlog文件中的Base64编码解码成可读的语句。 

-vv参数:输出详细的解析信息。 

-d AAAA参数:指定要恢复的数据库名称。 

/var/lib/mysql/mysql-bin.000032为二进制日志文件的路径。 

grep -B 30 -A 20 'BBB表'参数:在输出中只保留包含'BBB'的SQL语句,并显示前30行和后20行。

3.在binlog.txt中查找需要的数据信息

4.请注意

binlog.txt文件将包含与"oa_repair_task"相关的SQL语句和其前后的部分内容。如果需要导出其他SQL语句或修改导出的行数,可以相应调整grep -B 30 -A 20 'oa_repair_task'命令中的条件和行数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值