MySQL логирование запросов

Автор: | 09.07.2019

По умолчанию логи запросов выключены. Чтобы их включить нужно

открыть файл mysqld.cnf по пути /etc/mysql/mysql.conf.d и отредактировать его, например, раскомментировав следующие две строки:

  • general_log_file = /var/log/mysql/mysql.log
  • general_log = 1

Теперь mysql будет вести лог всех запросов к базе в файле /var/log/mysql/mysql.log

Не забудьте перезагрузить сервер баз данных после внесенных изменений. Иногда может потребоваться предварительно создать данный файл и назначить ему нужные права, например:

  • touch /var/log/mysql/mysql.log
  • chown mysql:adm /var/log/mysql/mysql.log

Логирование ошибок:

  • log_error = /var/log/mysql/error.log

, лог медленных запросов:

  • slow_query_log = 1
  • slow_query_log_file = /var/log/mysql/mysql-slow.log
  • long_query_time = 2

и бинарный лог, так необходимый при репликации и бэкапах:

  • log_bin = /var/log/mysql/mysql-bin.log
  • expire_logs_days = 10
  • max_binlog_size = 100M

В бинарный лог записываются все команды изменения базы данных и без особой надобности его включать не следует, потому что он снижает производительность из-за требовательности к ресурсам.

Если нужно обнулить файл с логами:

  • cp /dev/null /var/log/mysql/mysql.log