截断MySQL中的慢查询日志

Gre*_*reg 14 mysql logging truncate

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

安全我的意思是:

  • 不得导致任何权限问题
  • 下次附加时不得跳回原来的大小

var*_*tec 22

无论是否正在运行的应用程序打开文件,都要截断文件:

> /var/logs/your.log
Run Code Online (Sandbox Code Playgroud)

在你的shell提示符下.


小智 16

这里:

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

shell> cd mysql-data-directory
shell> mv mysql.log mysql.old
shell> mv mysql-slow.log mysql-slow.old
shell> mysqladmin flush-logs
Run Code Online (Sandbox Code Playgroud)


Luk*_*ncl 5

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

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

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