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
From here:
You can move the open file, then tell mysqld to flush logs, which will open a new log.
To truncate a file regardless if it is open by a running application do:
at your shell prompt.
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 usedcat /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!