Mysql 5.7开启binlog日志

Gcn
Gcn
2025-11-06 / 0 评论 / 2 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年11月07日,已超过124天没有更新,若内容或图片失效,请留言反馈。

前言

binlog是MySQL的二进制日志,并且是MySQL中最重要的日志。binlog记录了对MySQL数据库执行更改的所有操作,包括对数据库表结构的变更,对数据的变更,例如CREATE、ALTER TABLE、INSERT、UPDATE、DELETE…,但是不会记录查询语句select。需要注意的是,如果是update操作,即使是没有数据更新,也会记录在binlog日志中,binlog日志是以事件形式记录,并且还包含语句所执行的消耗时间。

查看binlog是否开启

show variables like 'log_bin';

mhnlyfah.png

开启binlog

修改mysql配置文件

[mysqld]
log-bin=mysql-bin
server_id=1
注意: serverd一定要设置,否则会导致mysql无法启动

重新启动mysql

# 停止mysql服务
service mysql stop 
# 启动mysql服务
service mysql start 
# 重启mysql服务
service mysql restart

应用

## 主从复制

master端开启binlog,master把二进制日志传递给slaves来达到master-slave数据保持一致。

## 数据恢复

可以通过mysqlbinlog工具解析binlog来恢复数据。

binlog日志常用命令

查看所有的binlog日志列表

show master logs;

查看master状态,即最后一个binlog日志的编号名称,及其最后一个操作时间pos结束点值

show master status;

flush刷新binlog日志,此刻之后会产生一个新编号的binlog日志文件

flush logs;

bin-log日志存放地址

binlog存放在/var/lib/mysql里面的,如果是docker,则在相应的映射目录

配置存放位置、过期时间

在MySQL配置文件my.cnf或者my.ini中[mysqld]标签内修改
# 配置定时清理
expire_logs_days = 5
# 配置修改后的日志路径
log-bin=/home/logs/mysql-bin

配置每个日志文件的大小

在MySQL配置文件my.cnf或者my.ini中[mysqld]标签内修改

binlog每个日志文件大小

max_binlog_size = 100m
binlog格式
# binlog日志格式,MySQL默认采用的是STATEMENT,建议使用MIXED
binlog_format = MIXED

0

评论 (0)

取消