欢迎光临优选殡葬网
详情描述

MySQL的 binlog(二进制日志) 是记录所有修改数据库数据的SQL语句(或实际数据变更)的日志文件,用于主从复制和数据恢复。以下是一些常用的binlog操作示例:

1. 查看binlog配置

-- 查看是否开启binlog
SHOW VARIABLES LIKE 'log_bin';
-- 查看binlog格式(ROW/STATEMENT/MIXED)
SHOW VARIABLES LIKE 'binlog_format';
-- 查看binlog文件路径
SHOW VARIABLES LIKE 'log_bin_basename';
-- 查看binlog过期时间(默认0,不过期)
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

2. 查看binlog文件列表

SHOW BINARY LOGS;
-- 或
SHOW MASTER LOGS;

输出示例:

+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       177 |
| mysql-bin.000002 |      1075 |
+------------------+-----------+

3. 查看当前正在写入的binlog文件

SHOW MASTER STATUS;

输出示例:

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      107 |              |                  |
+------------------+----------+--------------+------------------+

4. 使用mysqlbinlog工具解析binlog

查看原始binlog内容

# 查看指定binlog文件
mysqlbinlog /var/lib/mysql/mysql-bin.000001

# 查看特定时间段的binlog
mysqlbinlog \
  --start-datetime="2024-01-01 00:00:00" \
  --stop-datetime="2024-01-02 00:00:00" \
  mysql-bin.000001

# 查看特定位置范围的binlog
mysqlbinlog \
  --start-position=100 \
  --stop-position=500 \
  mysql-bin.000001

# 输出为可读SQL(ROW格式时需要)
mysqlbinlog -v mysql-bin.000001

# 输出到文件
mysqlbinlog mysql-bin.000001 > binlog.sql

5. 在MySQL客户端中查看binlog事件

-- 查看第一个binlog的所有事件
SHOW BINLOG EVENTS IN 'mysql-bin.000001';

-- 从指定位置开始查看事件
SHOW BINLOG EVENTS IN 'mysql-bin.000001' FROM 100 LIMIT 10;

-- 查看特定位置范围的事件
SHOW BINLOG EVENTS IN 'mysql-bin.000001' FROM 100 TO 500;

6. 刷新和切换binlog文件

-- 手动创建新的binlog文件(当前日志归档,新建一个)
FLUSH BINARY LOGS;

-- 重启MySQL服务也会创建新的binlog文件

7. 清理binlog文件

-- 删除指定文件之前的binlog(保留最新)
PURGE BINARY LOGS TO 'mysql-bin.000010';

-- 删除指定时间之前的binlog
PURGE BINARY LOGS BEFORE '2024-01-01 00:00:00';

-- 删除所有binlog(重置)
RESET MASTER;  -- 注意:会清除所有binlog,主从复制需重新配置

8. 使用binlog恢复数据

恢复整个binlog到数据库

# 通过mysqlbinlog导出SQL并执行
mysqlbinlog mysql-bin.000001 | mysql -u root -p

# 恢复多个binlog文件
mysqlbinlog mysql-bin.000001 mysql-bin.000002 | mysql -u root -p

# 恢复指定时间段的数据
mysqlbinlog \
  --start-datetime="2024-01-01 00:00:00" \
  --stop-datetime="2024-01-01 12:00:00" \
  mysql-bin.000001 | mysql -u root -p

先导出为SQL文件再恢复

# 导出为SQL文件
mysqlbinlog mysql-bin.000001 > recovery.sql

# 编辑SQL文件(可选,比如删除误操作语句)
vi recovery.sql

# 执行恢复
mysql -u root -p < recovery.sql

9. binlog相关配置示例(my.cnf)

[mysqld]
# 启用binlog
log_bin = /var/lib/mysql/mysql-bin
# binlog格式(推荐ROW)
binlog_format = ROW
# 每个binlog文件大小(默认1G)
max_binlog_size = 100M
# binlog过期时间(7天)
binlog_expire_logs_seconds = 604800
# 缓存大小(提高性能)
binlog_cache_size = 32K
# 同步策略(1=最安全,0=性能最好)
sync_binlog = 1

10. 特殊场景

查看ROW格式的详细SQL

# -v 显示伪SQL,-vv 显示更详细信息
mysqlbinlog -vv mysql-bin.000001

# 仅显示特定数据库的binlog
mysqlbinlog \
  --database=your_db_name \
  mysql-bin.000001

从远程服务器读取binlog

mysqlbinlog \
  --read-from-remote-server \
  --host=192.168.1.100 \
  --user=repl \
  --password \
  mysql-bin.000001

注意事项

ROW格式的binlog默认显示为base64编码,需要-v参数解析 PURGE BINARY LOGS需要BINLOG_ADMIN权限(MySQL 8.0+) 生产环境操作binlog前建议先备份 大量数据恢复时,直接通过管道执行可能超时,建议先导出为文件

常用命令速查

操作 命令
查看binlog状态 SHOW MASTER STATUS;
查看binlog列表 SHOW BINARY LOGS;
切换binlog文件 FLUSH BINARY LOGS;
删除旧binlog PURGE BINARY LOGS BEFORE '2024-01-01';
解析binlog文件 mysqlbinlog -v mysql-bin.000001
恢复数据 mysqlbinlog binlog.000001 \| mysql -u root -p

这些操作可以帮助你有效管理MySQL的binlog日志,实现数据审计、故障恢复和主从复制等功能。

相关帖子
佛山市AI数字人视频制作#网站定制开发公司,一站式服务
佛山市AI数字人视频制作#网站定制开发公司,一站式服务
佛山市正规殡葬服务公司,丧事一站式服务,价格透明
佛山市正规殡葬服务公司,丧事一站式服务,价格透明
共享电单车等新出行方式的兴起,对外卖配送和短途网约车市场带来了哪些变化?
共享电单车等新出行方式的兴起,对外卖配送和短途网约车市场带来了哪些变化?
一文读懂汽车二次抵押贷,梳理产品特点、准入门槛与主流业务模式
一文读懂汽车二次抵押贷,梳理产品特点、准入门槛与主流业务模式
高层住宅与低层住宅在燃气安检方面有何特殊注意事项
高层住宅与低层住宅在燃气安检方面有何特殊注意事项
多辆汽车合并二次抵押知识,解读组合抵押核算规则与额度上限
多辆汽车合并二次抵押知识,解读组合抵押核算规则与额度上限
写字楼门店房抵押贷款可以用于装修吗?装修用途条件与流程
写字楼门店房抵押贷款可以用于装修吗?装修用途条件与流程
四平市专业网站建设优化-erp系统开发,多年建站经验
四平市专业网站建设优化-erp系统开发,多年建站经验
岳阳市殡仪服务流程-出租冰棺服务,快速上门
岳阳市殡仪服务流程-出租冰棺服务,快速上门
玉树殡葬服务一站式办理-丧礼服务,个性化服务
玉树殡葬服务一站式办理-丧礼服务,个性化服务
许昌市app开发#网站建设制作,专业建站公司
许昌市app开发#网站建设制作,专业建站公司
达州市网站开发正规公司-苹果系统app开发,服务可靠
达州市网站开发正规公司-苹果系统app开发,服务可靠
榆林市殡葬一条龙公司电话,白事殡葬一条龙服务,安全可靠
榆林市殡葬一条龙公司电话,白事殡葬一条龙服务,安全可靠
当遇到劳动合同纠纷时,除了劳动仲裁,还有哪些高效便捷的解决途径?
当遇到劳动合同纠纷时,除了劳动仲裁,还有哪些高效便捷的解决途径?
小区房子抵押贷款和别墅抵押贷款有什么区别?这五点差异必须了解
小区房子抵押贷款和别墅抵押贷款有什么区别?这五点差异必须了解
诸暨市殡葬服务电话|殡仪服务,丧葬追思会服务
诸暨市殡葬服务电话|殡仪服务,丧葬追思会服务
洛阳市短视频运营推广#网站定制开发,收费标准
洛阳市短视频运营推广#网站定制开发,收费标准
过桥垫资评估费怎么收?评估费收费标准与计算方式详细说明
过桥垫资评估费怎么收?评估费收费标准与计算方式详细说明
大丰区殡葬一条龙服务价格-丧葬出殡服务,1小时随叫随到
大丰区殡葬一条龙服务价格-丧葬出殡服务,1小时随叫随到
个人债务优化重组要求未来趋势如何?2026年要求变化展望
个人债务优化重组要求未来趋势如何?2026年要求变化展望
云浮市殡葬服务公司电话|丧葬礼仪服务,白事灵堂策划
云浮市殡葬服务公司电话|丧葬礼仪服务,白事灵堂策划