You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL关闭时如何清理BinLog文件?Ubuntu服务器存储已满求助

解决MySQL BinLog占满磁盘导致服务无法启动的清理方案

紧急清理步骤(MySQL无法启动时)

  • 确保MySQL彻底停止:
    sudo systemctl stop mysql
  • 进入BinLog存储目录:
    cd /var/lib/mysql
  • 列出所有BinLog文件(确认文件名前缀,通常为mysql-bin或binlog):
    ls -la | grep -E 'mysql-bin\.[0-9]+|binlog\.[0-9]+'
  • 删除旧的BinLog文件,保留最近1-2个(避免误删关键日志),示例:
    sudo rm mysql-bin.000{001..122}

    注意:不要删除mysql-bin.index或binlog.index索引文件

  • 更新索引文件,移除已删除的BinLog记录:
    sudo nano mysql-bin.index
    手动删除对应已删除文件的行,保存退出(Ctrl+O → 回车 → Ctrl+X)
  • 启动MySQL服务:
    sudo systemctl start mysql
  • 验证磁盘空间恢复:
    df -H --output=source,size,used,avail

长期预防配置

MySQL启动成功后,配置自动清理规则避免重复问题:

  • 编辑MySQL配置文件:
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  • 添加或修改以下参数(根据实际需求调整):
    expire_logs_days = 7       # 保留7天的BinLog
    max_binlog_size = 500M     # 单个BinLog文件最大限制为500MB
    
  • 重启MySQL生效:
    sudo systemctl restart mysql
  • 可选:手动清理过期日志(启动后执行):
    mysql -u root -p -e "PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 7 DAY);"

额外空间优化建议

  • 清理Apache旧日志:
    sudo rm /var/log/apache2/*.log.1
  • 清理系统日志:
    sudo journalctl --vacuum-time=7d
  • 检查WordPress的wp-content/uploads目录,删除无用的大文件或备份

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:05:09