MySQL InnoDB Redo Log 文件调整与清理
学习笔记作者:admin日期:2025-05-25点击:30
摘要:总结如何安全地调整和清理 MySQL InnoDB 的 redo log 文件(如 ib_logfile0、ib_logfile1 和 ib_logfile0.old),解决文件过大问题。
MySQL InnoDB Redo Log 文件调整与清理
问题描述
当 MySQL 的 redo log 文件(如 ib_logfile0
和 ib_logfile1
)过大时,可能导致磁盘空间不足或其他性能问题。此外,还可能出现冗余文件(如 ib_logfile0.old
),需要清理。
解决方案
1. 停止 MySQL 服务
sudo systemctl stop mysql
# 或者
sudo service mysql stop
2. 删除旧的 redo log 文件
sudo rm /var/lib/mysql/ib_logfile*
3. 修改配置文件,设置合适的日志大小
sudo nano /etc/my.cnf
[mysqld]
innodb_log_file_size = 256M
4. 启动 MySQL 服务
sudo systemctl start mysql
5. 检查是否生效
SHOW VARIABLES LIKE 'innodb_log%';
注意事项
- 确保 MySQL 已停止后再删除日志文件。
- 修改
innodb_log_file_size
后需重启 MySQL。 ib_logfile0.old
文件可以安全删除。
总结命令流程(快速参考)
# 1. 停止 MySQL
sudo systemctl stop mysql
# 2. 删除 redo log 文件
sudo rm /var/lib/mysql/ib_logfile*
# 3. 编辑 my.cnf 设置 innodb_log_file_size
sudo nano /etc/my.cnf
# 添加:innodb_log_file_size = 256M
# 4. 启动 MySQL(自动重建日志)
sudo systemctl start mysql