mysql - 轮转mysql慢查询日志

标签 mysql performance

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

谢谢

最佳答案

你根本无法使用 logrotate 来做到这一点,你必须首先更改 my.cnf 中的文件名,然后再做任何想做的事情。重新加载 mysql。

如果你想要 logrotate 的方式,你必须在那个时候禁用慢查询日志。

logrotate 是 percona 团队建议的,对我有用。

/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
}

关于mysql - 轮转mysql慢查询日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4601658/

相关文章:

php - 替代或帮助多个 SQL 查询运行太慢

mysql - 是否可以在带有 group by 子句的查询结果中指定代表组的行的选择?

php - 在全局/ session 变量中存储数据与 MySQL 查询

mysqldump 最大忽略表使用情况?

c# - 无法从 Azure 网站上的 MVC4 应用程序连接到 MySQL

Python 计时 - 一定有更好的方法!

multithreading - OpenMP的哪个线程正在执行最多的工作?

javascript速度

performance - JMeter 如何在达到特定错误率时停止测试

performance - CUDA理论带宽与有效带宽