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
相关产品推荐
相关产品推荐

