Mysql binlog 安全删除
简介:
如果你的 Mysql 搭建了主从同步 , 或者数据库开启了 log-bin 日志 , 那么随着时间的推移 , 你的数据库 data 目录下会产生大量的日志文件
shell > ll /usr/local/mysql/data/ # 如下 -rw-rw----. 1 mysql mysql 63278 9月 11 02:03 mysql-bin.000001 -rw-rw----. 1 mysql mysql 1096670 9月 11 02:03 mysql-bin.000002 -rw-rw----. 1 mysql mysql 133 9月 11 02:04 mysql-bin.000003 -rw-rw----. 1 mysql mysql 133 9月 12 02:00 mysql-bin.000004 -rw-rw----. 1 mysql mysql 271 9月 12 18:25 mysql-bin.000005 -rw-rw----. 1 mysql mysql 133 9月 12 18:55 mysql-bin.000006 -rw-rw----. 1 mysql mysql 133 9月 12 19:48 mysql-bin.000007 -rw-rw----. 1 mysql mysql 133 9月 12 21:21 mysql-bin.000008 -rw-rw----. 1 mysql mysql 321 11月 18 17:30 mysql-bin.000009
# 由于我的是测试环境 , 所以文件还很小 , 生产环境中这些文件如果不做处理的话 , 甚至会撑爆你的磁盘
下面来介绍几种解决方法:
~~> 如果你的数据库没有搭建主从同步这样的服务 , binlog 日志也不用的情况下 , 你可以将 /etc/my.cnf 文件下面行删除或注释掉
log-bin=mysql-bin
~~> 如果你需要这样的文件 , 那么建议你在主配置文件 /etc/my.cnf 中添加如下行 , 来限制 binlog 日志文件存在时间 , 过期自动删除 expire_logs_days = 7 # 只保留 7 天的日志文件
~~> 如果你直接得到一台服务器 , 上面的 binlog 日志已经影响到了磁盘空间 , 那么你将使用下面命令清除
mysql> reset master; # 清空所有 binlog 文件
~~> 如果你的得到的服务器 , mysql 还做了主从同步 , 那么上面的命令就不适合你了 , 因为 binlog 文件删除过多的话 , 会导致数据不同步 mysql> show slave status\G # 你首先要来 slave 上查看从库读 binlog 到了哪里 Master_Log_File: mysql-bin.000009 # 我们可以看到是 mysql-bin.000009 mysql> purge master logs to 'mysql-bin.000009'; # 我们可以在 master 中执行这条指令 , 将 binlog 文件删除至 mysql-bin.000009 前 mysql> purge master logs before '2014-11-18 00:00:00'; # 将 binlog 文件删除至此日期前
分类:
(遗弃)MySQL、NoSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用