MySQL数据库被删除如何恢复

第一步:保证mysql已经开启binlog,查看命令:
查看binklog是否开启

show variables like '%log_bin%';

查看binlog存放日志文件目录(如下图,博主binlog目录为/data/mysql):

show variables like '%datadir%';

值为OFF,需开启,值为ON,已开启。

如果没有开启binlog,也没有预先生成回滚SQL,那可能真的无法快速回滚了。对存放重要业务数据的MySQL,强烈建议开启binlog。

第二步:进入binlog文件目录,找出日志文件
在这里插入图片描述
第三步:切换到mysqlbinlog目录(当线上数据出现错误的时候首先可以询问具体操作人记录时间点,这个时候可以借助mysql自带的binlog解析工具mysqlbinlog,具体位置在mysql安装目录**/mysql/bin/下)

第四步:通过mysqlbinlog工具命令查看数据库增删改查记录(必须切换到mysqlbinlog目录才有效)

例子1:查询2018-11-12 09:00:00到2018-11-13 20:00:00 数据库为 youxi 的操作日志,输入如下命令将数据写入到一个备用的txt文件中

 mysqlbinlog --no-defaults --database=youxi --start-datetime="2018-11-12 09:00:00" --stop-datetime="2018-11-13 20:00:00" /data/mysql/mysql-bin.000015    > template_coupon_tb_product_category.txt

例子2:查询2018-11-12 09:00:00到2018-11-13 20:00:00 数据库为 youxi 的操作日志,并输出到屏幕上

mysqlbinlog --no-defaults --database=youxi --start-datetime="2018-11-12 09:00:00" --stop-datetime="2018-11-13 20:00:00" /data/mysql/mysql-bin.000015   |more

例子3:查询2018-11-12 09:00:00到2018-11-13 20:00:00 数据库为 youxi 的操作日志,并且过滤出 只包括 template_coupon_tb_product_category 表数据的操作记录 ,输入如下命令将数据写入到一个备用的txt文件中

mysqlbinlog --no-defaults --database=youxi --start-datetime="2018-11-12 09:00:00" --stop-datetime="2018-11-13 20:00:00" /data/mysql/mysql-bin.000015   | grep template_coupon_tb_product_category   > template_coupon_tb_product_category.txt

在这里插入图片描述
第五步:利用第四步输出的sql语句或者txt文本进行语句过滤,重新插入数据或更新数据

以上方法可能会出现sql语句字段缺失的情况:如图,上面一整段数据都是好的,下面的sql语句有缺失
在这里插入图片描述
如遇到以上问题可以尝试使用下面的方法:
通过下面的命令将指定binlog二进制日志文件中的sql自动执行一遍,区别于上面打印到txt文档中的方法

[root@localhost bin]# ./mysqlbinlog --no-defaults /www/server/data/mysql-bin.000004 --start-position="794" --stop-position="1055" | /www/server/mysql/bin/mysql -uroot -p123456 test

[root@localhost bin]# ./mysqlbinlog --no-defaults /www/server/data/mysql-bin.000004 --start-datetime="2020-12-15 00:00:00" --stop-datetime="2021-03-01 20:00:00" | /www/server/mysql/bin/mysql -uroot -psw

start-position 代表指定具体开始位置
start-datetime 代表指定具体开始日期
在这里插入图片描述

对于误删除mysql数据库恢复,有几个方法可以尝试: 1. 使用备份恢复:如果你有定期备份mysql数据库的习惯,那么可以通过将备份文件还原到服务器上来恢复删除数据库。你可以使用以下命令将备份文件还原到指定位置: ``` mysql -u username -p database_name < backup_file.sql ``` 其中,`username`是mysql用户名,`database_name`是要恢复数据库名,`backup_file.sql`是备份文件的路径。 2. 使用二进制日志恢复mysql的二进制日志可以记录所有的数据库操作,包括删除操作。你可以通过查看二进制日志来找到误删除数据库,并将其恢复到之前的状态。你可以使用以下命令查看二进制日志: ``` mysqlbinlog mysql-bin.index ``` 其中,`mysql-bin.index`是二进制日志索引文件的路径。在查看二进制日志时,你可以找到误删除数据库的相关操作,并执行相关的恢复操作。 3. 寻求专业支持:如果以上方法对你来说比较复杂或者无法解决问题,你可以寻求专业的数据库恢复服务。专业的数据库恢复服务可以帮助你从备份文件或二进制日志中恢复被误删除数据库。请注意,在寻求专业支持之前,确保备份文件或二进制日志没有被覆盖或损坏,以提高恢复成功的可能性。 请根据你的具体情况选择适合的方法来恢复删除mysql数据库。记住,在执行任何恢复操作之前,请先备份现有数据库,以防止进一步数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值