在 MySQL 运行时截断 MySQL 慢查询日志(主要在 Linux 下,但 Windows 会很方便)的最安全方法是什么?
安全我的意思是:
- 不得导致任何权限问题
- 下次附加时不能跳回原来的大小
要截断文件,无论它是否由正在运行的应用程序打开,请执行以下操作:
> /var/logs/your.log
在你的 shell 提示符下。
从这里:
您可以移动打开的文件,然后告诉 mysqld 刷新日志,这将打开一个新日志。
shell> cd mysql-data-directory
shell> mv mysql.log mysql.old
shell> mv mysql-slow.log mysql-slow.old
shell> mysqladmin flush-logs
如果这将是一个持续的问题,你应该看看logrotate因为它可以为你做这件事。
我不知道echo > file.log
,虽然它是有道理的。我一直用cat /dev/null > file.log
。
另外,应该注意的是不要删除正在写入的日志文件,因为打开它的程序将继续写入该文件,这一点非常重要。很难弄清楚为什么你所有的硬盘空间都不见了!