繁体   English   中英

在 MySQL 中截断慢查询日志

[英]Truncate Slow Query Log in MySQL

在 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

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

请记住,仅删除 (rm) 或移动 (mv) 文件不会释放空间,直到 mysql 重新启动。

在 ubuntu 和 MariaDB 上,我用它来清空 mysql-slow.log 使用的磁盘空间而无需重新启动。

echo > /var/lib/mysql/mysql-slow.log

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM