当前位置: 首页 > news >正文

【MySQL】设置二进制日志文件自动过期,从根源上解决占满磁盘的问题:通过修改 binlog_expire_logs_seconds 配置项

引言

MySQL的二进制日志(binlog)文件记录了数据库中所有更改的详细信息,包括但不限于对数据的插入、删除、更新,对表和数据库的创建、更改、删除等操作。每一次这样的操作都会在二进制日志中生成一个新的日志事件,并被写入到一个新的二进制日志文件中。因此,如果数据库的活动量较大,二进制日志文件将会迅速增长,可能占用大量的磁盘空间。

此外,MySQL的二进制日志是持久化存储的,除非手动删除或者设置了自动过期(通过expire_logs_days配置项),否则这些日志文件将会永久保留在磁盘上。如果没有定期清理旧的二进制日志文件,这些文件将会累积起来,占用更多的磁盘空间。因此,为了避免磁盘空间被耗尽,需要定期清理旧的二进制日志文件,或者设置二进制日志的自动过期。

在 MySQL 8 及更高版本中,引入了binlog_expire_logs_seconds全局系统变量,它允许您以秒为单位设置二进制日志文件的自动过期时间。这比expire_logs_days变量提供了更精细的控制,后者只能以天为单位设置过期时间。


步骤

  1. 登录到MySQL服务器:
mysql -u root -p
  1. 查看当前的binlog_expire_logs_seconds值:
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

在这里插入图片描述

  1. 设置binlog_expire_logs_seconds值。例如,如果要将二进制日志文件的过期时间设置为1天(86400秒),可以执行以下命令:
SET GLOBAL binlog_expire_logs_seconds = 86400;

这个命令只会影响新生成的二进制日志文件,已经存在的二进制日志文件的过期时间不会改变。

注意,只有具有SUPER权限的用户才能设置binlog_expire_logs_seconds系统变量。

  1. 为了让这个设置在MySQL服务器重启后仍然有效,需要将它添加到MySQL的配置文件中。

打开MySQL的配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]部分添加以下行:

binlog_expire_logs_seconds = 86400

然后保存并关闭配置文件。

  1. 重启MySQL服务器以使新的设置生效
sudo service mysql restart
  1. 再次查看当前的binlog_expire_logs_seconds值以确保设置生效
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

在这里插入图片描述

现在,MySQL服务器会自动删除超过1天的二进制日志文件。


http://www.mrgr.cn/news/53804.html

相关文章:

  • AFSim仿真系统 --- 系统简解_12 通讯
  • K8s-pod详解3(pod调度)
  • 聚铭网络入选工信部《工业互联网与电力行业融合应用参考指南》推荐企业
  • C语言 | Leetcode C语言题解之第480题滑动窗口中位数
  • 【机器学习】VQ-VAE(Vector Quantized Variational Autoencoder)
  • JRT怎么从IRIS切换到PostGreSql库
  • 使用C语言实现一个任务调度系统
  • 现代数字信号处理I-P4 CRLB+LMMSE 学习笔记
  • Olap数据处理
  • 智慧社区Web平台:Spring Boot技术实现
  • 高级SQL技巧:掌握数据分析与优化的艺术
  • 自由学习记录(10)
  • 【win11】终端/命令提示符/powershell美化
  • ProteinMPNN中EncLayer类介绍
  • 软件设计的依赖反转原则
  • 这种V带的无极变速能用在新能源汽车上吧?
  • Python配合Yolov11开对象检测训练软件
  • 019_基于python+django食品销售数据分析系统2024_4032ydxt
  • SwanLab VSCode插件已发布,附使用教程
  • Spring Cloud Alibaba AI实践
  • YOLOv11改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点
  • 【软件测试】JUnit
  • 【瑞昱RTL8763E】py文件的执行
  • 群晖通过 Docker 安装 MySQL
  • 远程监控电脑屏幕用什么软件?种草6款真实好用的远程电脑监控软件!实用至上!
  • C++学习,标准库 <string> 成员函数