我的服务器的 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
}
Run Code Online (Sandbox Code Playgroud)