截断MySQL中的慢查询日志

时间:2009-02-23 11:29:49

标签: mysql logging truncate

在MySQL运行时截断MySQL慢查询日志(主要是在Linux下,但Windows会很方便)的最安全的方法是什么?

安全我的意思是:

  • 不得导致任何权限问题
  • 下次附加到
  • 后,不得跳回原来的尺寸

3 个答案:

答案 0 :(得分:22)

要截断文件,无论正在运行的应用程序是否打开该文件,请执行以下操作:

> /var/logs/your.log

在你的shell提示符下。

答案 1 :(得分:16)

来自here

您可以移动打开的文件,然后告诉mysqld刷新日志,这将打开一个新日志。

shell> cd mysql-data-directory
shell> mv mysql.log mysql.old
shell> mv mysql-slow.log mysql-slow.old
shell> mysqladmin flush-logs

答案 2 :(得分:5)

如果这是一个持续关注的问题,你应该看看logrotate因为它可以为你做这件事。

我不知道echo > file.log,虽然这是有道理的。我一直使用cat /dev/null > file.log

此外,应该注意的是,非常重要的是不删除正在写入的日志文件,因为打开它的程序将继续写入该文件。很难弄清楚为什么你的所有硬盘空间都消失了!