Truncate Slow Query Log в MySQL

Какой самый безопасный способ обрезать журнал медленных запросов MySQL (в основном Linux, но Windows будет удобнее знать), в то время как MySQL работает?

Безопасным я имею в виду:

  • Не следует вызывать проблемы с разрешениями.
  • Не следует возвращаться к исходному размеру в следующий раз, когда добавляется к

Ответы

Ответ 1

Чтобы усечь файл независимо от того, открыт ли он запущенным приложением, выполните следующие действия:

> /var/logs/your.log

в командной строке.

Ответ 2

От здесь:

Вы можете переместить открытый файл, а затем сообщить mysqld, чтобы скрыть журналы, которые откроют новый журнал.

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

Ответ 3

Если это будет продолжаться, вы должны взглянуть на logrotate, поскольку это может сделать это для вас.

Я не знал о echo > file.log, хотя это имеет смысл. Я всегда использовал cat /dev/null > file.log.

Кроме того, следует отметить, что очень важно не удалять файл журнала, который записывается, потому что открытая программа продолжит запись в файл. Очень сложно понять, почему все ваше пространство на жестком диске ушло!