MySQL日志过大解决方法:
一、思路:
MySQL配置文件(/etc/my.cnf)默认开启了日志功能,但并未对日志文件产生数进行限制,日积月累导致日志文件越来越多,占用磁盘空间越来越大,直至消耗完所有磁盘空间。
虽然可以关闭数据库日志功能彻底解决该问题,但执行该方式后数据库不能进行回滚操作,不利于现网数据库的运维。每月定期执行一次自动脚本,每次清空3个月前的日志文件。
二、实现过程:
#!/bin/bash
mysql -u[root] -p[password] <<EOF
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 90 DAY);
quit
EOF
注意:
1.脚本中需按实际情况输入数据库密码和数据库名。
2.该脚本只适用于非集群部署的MySQL
将该脚本命名为CleraLog.sh,并将其加入到系统计划任务:(每个月的第一天3:30执行一次)
30 3 1 * * /root/ClearLog.sh
3.前提条件:
保留1-2个月的日志文件的前提是服务器的硬盘空间足够能容纳这样大量的文件。如果磁盘空间较小,可以缩短清空日志的执行周期。