Truncate Slow Query Log in MySQL

懵懂的女人 提交于 2019-12-04 10:32:20

问题


What's the safest way to truncate the MySQL slow query log (under Linux primarily, but Windows would be handy to know) while MySQL is running?

By safe I mean:

  • Mustn't cause any permissions problems
  • Mustn't jump back to its original size next time its appended to

回答1:


To truncate a file regardless if it is open by a running application do:

> /var/logs/your.log

at your shell prompt.




回答2:


From here:

You can move the open file, then tell mysqld to flush logs, which will open a new log.

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



回答3:


If this is going to be a ongoing concern, you should take a look at logrotate as it can do this for you.

I did not know about echo > file.log, though it makes sense. I've always used cat /dev/null > file.log.

Also, it should be noted that it's very important not to delete a log file that is being written to because the program that has it open will continue to write to the file. Very difficult to figure out why all your hard drive space is gone!



来源:https://stackoverflow.com/questions/577339/truncate-slow-query-log-in-mysql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!