首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环mysql慢查询日志

循环mysql慢查询日志
EN

Stack Overflow用户
提问于 2011-01-05 15:14:55
回答 3查看 7.5K关注 0票数 2

我的服务器的MySQL慢查询日志每天都在增长(现在是37MB),所以我想轮换一下。如果我将当前日志文件移动到另一个文件夹,那么MySQL是否会自动创建另一个日志文件?假设我正在删除当前的日志文件,那么当另一个较慢的查询到来时,MySQL会自动创建一个新的日志文件吗?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-05 15:17:20

您可以使用logrotate脚本定期轮换MySQL日志,并可能保留有限数量的以前日志(以节省空间)。您可以使用您喜欢的任何计划来配置它。

就我个人而言,我发现使用Webmin图形用户界面进行配置很容易

票数 1
EN

Stack Overflow用户

发布于 2014-09-16 01:19:29

你不能简单地使用logrotate来做到这一点,你必须首先在my.cnf中更改文件名,然后执行任何想要的do.reload。

如果您想要logrotate方式,您将不得不禁用该时间的慢查询日志。

logrotate这件事是由percona团队提出的,对我来说很有效。

代码语言:javascript
复制
/var/mysql/slow_query.log {
    nocompress
    create 660 mysql mysql
    size 1G
    dateext
    missingok
    notifempty
    sharedscripts
    postrotate
       /usr/local/bin/mysql -e 'select @@global.long_query_time into @lqt_save; set global long_query_time=2000; select sleep(2); FLUSH LOGS; select sleep(2); set global long_query_time=@lqt_save;'
    endscript
    rotate 150
}
票数 3
EN

Stack Overflow用户

发布于 2011-01-05 15:32:06

您可以设置一个每日cron,它将压缩和清空日志文件:

代码语言:javascript
复制
zip /tmp/$(date +%Y-%m-%d)-slow-query-log.zip /var/lib/mysql/slow-queries.log
cat /dev/null > /var/lib/mysql/slow-queries.log

当然,如果您的慢查询日志每天都有如此多的内容被记录,那么您(或其他人)应该调查并修复这些糟糕的查询:)

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4601658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档