win10中mysql数据库binlog恢复

win10中mysql数据库binlog恢复

昨天有朋友江湖救急,说测试库里的表不小心删除更新了数据。这里也复习下binlog数据恢复,当然需要一定的条件:首先mysql开启binlog,然后每天需要备份对应的数据库

1 单库单表准备

在恢复数据前,先场景复现

1.1 查看二进制日志是否已开启
mysql 复制代码
show variables like 'log_%'; 

-- 常用binlog日志操作命令
--   1.查看所有binlog日志列表
     show master logs;
--   2.查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值
     show master status;
--   3.刷新log日志,自此刻开始产生一个新编号的binlog日志文件
     flush logs;
--   	注:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志;
--   4.重置(清空)所有binlog日志
--      reset master;
--   5.查看具体的恢复点
    show binlog events in 'binlog.000118';
1.2 数据库准备
mysql 复制代码
create database db10;

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `NAME` varchar(20) DEFAULT NULL,
  `age` int DEFAULT NULL,
  `search_count` int DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `user` VALUES (1,'张三',23,25),(2,'李四',24,5),(3,'王五',25,3),(4,'赵六',26,7),(5,'张三丰',93,20),(6,'张无忌',18,23),(7,'张强',33,21),(8,'张果老',65,6);
1.3 备份数据库

在cmd中的mysql执行目录中,运行备份命令

cmd 复制代码
E:\Hadoop_win\Mysql_8\mysql-8.0.29-winx64\bin>mysqldump -uroot -p123456 -B db10 > E:\Hadoop_win\Mysql_8\data\BAK.db10.sql	
1.4 更新数据库表

在备份数据库后,进行库表user的新增更新操作

mysql 复制代码
-- 新增
INSERT INTO db10.`user`
(id, NAME, age, search_count)
VALUES(9, 'TOM', 28, 3);
INSERT INTO db10.`user`
(id, NAME, age, search_count)
VALUES(10, 'Jerry', 24, 6);
-- 更新
update db10.`user`
set NAME = 'Joes'  where id = 2;
update db10.`user`
set NAME = 'Tim'  where id = 3;
select * from db10.`user`;
-- 删除
delete from db10.`user` where id = 5;

2 单库单表恢复

单库单表恢复实现:先从备份恢复数据库,然后从binlog的位置点后续更新恢复数据

2.1 数据库每日备份恢复

在cmd中的mysql执行目录中,运行备份命令恢复

cmd 复制代码
E:\Hadoop_win\Mysql_8\mysql-8.0.29-winx64\bin>mysql -uroot -p123456 -v < E:\Hadoop_win\Mysql_8\data\BAK.db10.sql
2.2 从binlog的位置点后续更新恢复数据

查看所有binlog日志列表

mysql 复制代码
show master logs;

使用mysql语句查看binlog操作记录点

mysql 复制代码
show binlog events in 'binlog.000118';

在cmd中的mysql执行目录中,运行命令恢复

cmd 复制代码
E:\Hadoop_win\Mysql_8\mysql-8.0.29-winx64\bin>mysqlbinlog --no-defaults  --stop-position=2029 --database=db10 E:\Hadoop_win\Mysql_8\data\binlog.000118 | E:\Hadoop_win\Mysql_8\mysql-8.0.29-winx64\bin\mysql -uroot -p123456 -v db10

3 数据恢复展示

4 文章借鉴

mysql通过bin_log恢复数据_mysql数据库导入错文件如何恢复数据没有开启mysqlbinlog-CSDN博客

ERROR] unknown variable 'default-character-set=utf8mb4'_mysqlbinlog: [error] unknown variable 'default-cha-CSDN博客

相关推荐
Microsoft Word1 小时前
向量数据库与RAG
数据库·人工智能·向量数据库·rag
位步1 小时前
在linux系统中使用通用包安装 Mysql
android·linux·mysql
艾德金的溪2 小时前
redis-7.4.6部署安装
前端·数据库·redis·缓存
小光学长2 小时前
基于Vue的2025年哈尔滨亚冬会志愿者管理系统5zqg6m36(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
小陈永不服输2 小时前
MySQL覆盖索引深度解析:从原理到实践的性能优化之道
mysql
我的offer在哪里3 小时前
Redis
数据库·redis·缓存
点灯小铭3 小时前
基于单片机的多模式自动洗衣机设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计
潜心编码3 小时前
基于python的仓库管理系统
数据库
herinspace3 小时前
如何设置电脑分辨率和显示缩放
服务器·数据库·智能手机·电脑