MySQL数据库如何清理二进制日志文件binlog

2024-07-27 23:56:00
丁国栋
原创 173
摘要:本文介绍如何使用MySQL内置命令清除binlog二进制日志文件。

MySQL的二进制日志文件一般称为binlog,全称 binary logs,是MySQL多个实例之间复制重要的文件。MySQL主库开启了binlog如果不做处理会生成越来越多的binlog文件,必须做定期的清理。

在清理binlog之前,要对MySQL二进制日志文件做些处理,优化以下配置:

# 配置服务器ID,ID也可以用IP的长整型long表示,例如10.0.0.100 可以表示为 167772260,可以使用命令行 php -r 'echo ip2long("10.0.0.100");' 得到。
server-id = 1
# 启用二进制日志并指定它的存储位置
log-bin= /var/log/mysql/mysql-bin.log
# 设置二进制日志文件名前缀
log-bin-basename=mysql-bin
# 设置二进制日志文件大小(可选)
max_binlog_size=100M
# 设置二进制日志保留天数(可选)
expire_logs_days=7

注意:为了提高性能,二进制日志文件的存储路径最好和MySQL数据目录分开。

可以通过MySQL命令行查询二进制日志的配置:

SHOW VARIABLES LIKE 'log_bin%';
可以通过以下MySQL内置命令来清理二进制日志文件:
SHOW BINARY LOGS;
PURGE BINARY LOGS TO 'log_name'; 
注意:log_name 是上一步得到的结果中的倒数第二个,因为最后一个可能还没有同步完,所以最好不要删除,也可以结合 SHOW SLAVE STATUS\G 命令去查看从库同步到哪里了。

另外还可以使用 PURGE BINARY LOGS BEFORE '2024-07-27 00:00:00';清除指定日期之前的日志文件,但上面的方法更为安全。

发表评论
博客分类