旋转mysql慢查询日志

Ali*_*Ali 3 mysql performance

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

谢谢

Suy*_*ain 8

你根本不能使用 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
}
Run Code Online (Sandbox Code Playgroud)