linux中mysql二进制日志如何批量恢复?数据丢失,现在只有二进制文件
2条回答 默认 最新
- Elivis Hu 2023-04-07 15:15关注
回答:用二进制文件日志文件恢复数据
1.开启二进制日志
在mysqld的配置节点下添加如下配置log-bin="E:/Mysql57BinLog/binlog"(windows下的路径,linux下自行修改路径)
expire_logs_days=10
max_binlog_size=100M
2.重启mysql服务
使用命令show VARIABLES like '%log_bin%';查看3.创建库和表
create database mytest;
use mytest;
create table t(a int PRIMARY key)ENGINE = INNODB DEFAULT CHARSET=utf8;flush logs;
flush logs,刷新二进制日志后会多出来一个二进制日志
使用命令查看二进制日志内容
默认会读取配置文件,检测到no--beep会报错。
推荐使用命令:mysqlbinlog --no-defaults E:\Mysql57BinLog\binlog.0000014.插入数据
use mytest;
insert into t select 1 union all select 2 union all select 3;
flush logs;5.删除数据库
drop database mytest;
flush logs;6.恢复数据
mysqlbinlog --no-defaults E:\Mysql57BinLog\binlog.000001 E:\Mysql57BinLog\binlog.000002 E:\Mysql57BinLog\binlog.000003 | mysql -u root -p数据已还原。
-----------------------------------华丽的分割线--------------------------------------------------------------
二、恢复到某一时间点的数据
create table t2(a int PRIMARY key)ENGINE=INNODB default CHARSET=utf8;
insert into t2 values(1),(2),(3),(4),(5);mysqlbinlog --no-defaults E:\Mysql57BinLog\binlog.000006
删除数据
delete from t2 where a < 4;恢复数据
drop database mytest;
删除库mytest,回到最原始的地方mysqlbinlog --no-defaults --start-position="4" --stop-position="1285" E:\Mysql57BinLog\binlog.000006 | mysql -u root -p
数据恢复成功。
解决 无用评论 打赏 举报
悬赏问题
- ¥66 关于川崎机器人调速问题
- ¥15 winFrom界面无法打开
- ¥15 crossover21 ARM64版本安装软件问题
- ¥15 mymetaobjecthandler没有进入
- ¥15 mmo能不能做客户端怪物
- ¥15 osm下载到arcgis出错
- ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
- ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
- ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
- ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?