Windows环境MySQL8.0使用binlog恢复

目录

一、介绍

1.1.MySQL日志

二、数据恢复

2.1.查看二进制日志是否开启

2.2.开启二进制日志

2.3.查看二进制文件

2.4.解析二进制文件

2.5.恢复

三、其他命令


一、介绍

1.1.MySQL日志

binlog 是记录所有数据库表结构变更以及表数据修改的二进制日志(不会记录 select和show这类操作)

binlog 是逻辑日志,记录语句的原始逻辑。
数据恢复: 可以通过 mysqlbinlog工具进行数据恢复。

二、数据恢复

2.1.查看二进制日志是否开启

进入黑窗口并登录MySQL使用下面的代码

-- 查看是否开启二进制文件NO开启OFF关闭
show variables like '%log_bin%';

MySQL5.7的binlog默认是关闭的

2.2.开启二进制日志

Windows环境打开my.ini配置文件,添加下面代码

# Binary Logging.
log-bin=mysql-bin
binlog-format=Row
server-id=547892

  • log-bin=mysql-bin指令指定二进制日志文件的基本名称。在这种情况下,二进制日志文件将被命名为mysql-bin。
  • binlog-format=Row指令指定写入二进制日志的事件格式。在这种情况下,它被设置为Row,在这种格式下,二进制日志将记录数据行的更改。这意味着二进制日志将包含实际数据更改的详细信息,而不是SQL语句。
  • server-id=547892指令为MySQL服务器分配一个唯一的服务器ID。这通常用于复制设置中,以唯一标识每个服务器

【补充】

        binlog-format还可以设置

### 配置 Windows 环境MySQL 8.0Binlog #### 修改 my.ini 文件配置项 为了启用二进制日志记录功能,在 `my.ini` 或者 `my.cnf` 文件中的 `[mysqld]` 下添加如下参数: ```ini server-id=1 log_bin=mysql-bin expire_logs_days=7 max_binlog_size=100M binlog_format=MIXED ``` 这些设置指定了服务器ID、开启二进制日志文件前缀名为 `mysql-bin`,设置了超过七天的日志自动删除机制以及单个二进制日志的最大尺寸为100MB,并选择了混合模式作为复制格式[^1]。 #### 设置 binlog 过期时间 通过执行 SQL 命令来调整二进制日志的有效期限。例如,要将过期时间为两天,则可输入以下命令: ```sql SET GLOBAL binlog_expire_logs_seconds = 60 * 60 * 24 * 2; FLUSH LOGS; ``` 这会使得所有旧于指定秒数的二进制日志被清除并创建新的日志文件[^4]。 #### 使用 mysqlbinlog 工具读取和处理二进制日志 当需要查看或解析特定位置范围内的事件时,可以利用 `mysqlbinlog` 实用程序导出数据到外部SQL脚本中以便进一步分析或应用。比如从起始偏移量154至结束偏移量99568提取内容保存成 `c:\MySQL.sql` 文件: ```bash mysqlbinlog --start-position=154 --stop-position=99568 "C:\Program Files\mysql-5.7.23-winx64\data\mysql-bin.000003"> c:\\MySQL.sql ``` 请注意路径应指向实际存在的 `.ibd` 数据目录下的相应编号的二进制日志文件。 #### 解决服务无法启动的问题 如果遇到由于某些配置更改而导致的服务启动失败情况,尝试临时加入 `skip-grant-tables` 参数跳过权限表加载以排除是否因账户认证问题引起错误;一旦恢复正常运作后再逐步排查其他潜在因素[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值