mysql binlog统一恢复误删数据库、表、数据(没有任何备份)

先将mysql文件夹中的my.ini进行设置

在 [mysqld]下边加上

复制代码
# mysql-bin 是日志的基本名或前缀名,最后生成的日志文件是mysql-bin.000001类似,重启mysql数字会递增
log_bin=mysql-bin
#binlog格式,statement,row,mixed可按需选择
binlog-format=ROW
#过期时间
expire_logs_days = 10

如图:

然后重启mysql服务

  1. 查看mysql是否开启了binlog日志,如果开启了才能够通过binlog日志恢复误删

    show variables like '%log_bin%';

  1. 查看二进制日志文件多久过期,如果value是0则没有自动过期时间

  2. 查询binlog日志文件列表

    SHOW BINARY LOGS;

  1. 以binlog.000002为例,查询到误操作的pos值,info值是误操作

  2. 使用mysql的binlog工具解析binlog,并输出为SQL语句,在mysql的data文件夹下cmd命令,执行以下语句:

    mysqlbinlog --start-position=4 --stop-position=2353 ./binlog.000002 > rollback.sql

start-position是上图pos最开始的值,

stop-position是想要恢复的结束值,

binlog.000002是是日志文件的名称

rollback.sql是将想要恢复的节点数据执行的sql语句,生成为rollback.sql文件

  1. 恢复数据执行命令,执行完成以后输入数据库密码即可:

    mysql -u root -p test <rollback.sql

test是要恢复数据的数据库名称

出现以下输出则为恢复成功

注意:如果误删数据库的话需要在当前连接的本地库下创建对应的库名称(如果是在线数据库,需要在服务器上执行恢复数据库操作)

然后执行以上"3."开始进行恢复误删数据库的操作

相关推荐
TDengine (老段)2 分钟前
TDengine 时间函数 TODAY() 用户手册
大数据·数据库·物联网·oracle·时序数据库·tdengine·涛思数据
码界奇点11 分钟前
KingbaseES一体化架构与多层防护体系如何保障企业级数据库的持续稳定与弹性扩展
数据库·架构·可用性测试
悟乙己33 分钟前
数据科学家如何更好地展示自己的能力
大数据·数据库·数据科学家
皆过客,揽星河1 小时前
mysql进阶语法(视图)
数据库·sql·mysql·mysql基础语法·mysql进阶语法·视图创建修改删除
tuokuac2 小时前
Redis 的相关文件作用
数据库·redis·缓存
鹧鸪云光伏与储能软件开发3 小时前
投资储能项目能赚多少钱?小程序帮你测算
运维·数据库·小程序·光伏·光伏设计软件·光伏设计
2301_779503764 小时前
MySQL主从同步--主从复制进阶
数据库·mysql
beijingliushao4 小时前
58-正则表达式
数据库·python·mysql·正则表达式
诗句藏于尽头5 小时前
DJANGO后端服务启动报错及解决
数据库·笔记·django
手握风云-5 小时前
MySQL数据库精研之旅第十五期:索引的 “潜规则”(下)
数据库