![MySQL 查询日志未被清除](https://linux22.com/image/552126/MySQL%20%E6%9F%A5%E8%AF%A2%E6%97%A5%E5%BF%97%E6%9C%AA%E8%A2%AB%E6%B8%85%E9%99%A4.png)
我已经启用 MySQL 查询日志来检查在特定时间间隔内从我们的应用程序执行了哪些查询。
我希望日志刷新3天一次,所以我将到期日志天数设置为3天。
但是当我查看日志文件时,发现该日志从启用查询日志之日起就已经存在了一周多。
因此,日志文件增大到超过 2 GB,无法从中获取信息。
是否有任何选项可以启用,以便查询日志文件在几天后刷新/清除。
我正在使用 MySQL 5.0.24 服务器。
答案1
expire_logs_days仅负责轮换二进制日志。
您可能需要自己清除错误日志。
尝试这样做(例如:/var/log/mysqld.log 是错误日志)
步骤 01)创建一个脚本来复制错误日志并对其进行 gzip 压缩,并按日期和时间命名(调用脚本 /root/rotate_mysqld_log.sh)
cd /var/log
DT=`date +"%Y%m%d_%H%M%S"`
BACKUP_ERROR_LOG=mysqld_${DT}.log.gz
cat mysqld.log | gzip > ${BACKUP_ERROR_LOG}
echo -n > mysqld.log
步骤 02)使/root/rotate_mysqld_log.sh 可执行
chmod +x /root/rotate_mysqld_log.sh
步骤 03)将脚本添加到 crontab(午夜轮换)
0 0 * * * /root/rotate_mysqld_log.sh
试一试 !!!