Логгирование всех запросов MySQL и ротация логов MySQL

Раздел: FreeBSD
Написано: 26.05.2012
Автор: Antonio

Иногда в процессе тестирования необходимо видеть все запросы к базе MySQL. Чтобы активировать эту возможность, необходимо указать настройки в файле конфигурации. Обычно в FreeBSD файл конфигурации MySQL находится тут /etc/my.cnf

В /etc/my.cnf в конец секции [mysqld] добавляем строку:

log=/var/log/mysql.log


Создаем файл лога

touch /var/log/mysql.log

устанавливаем на него нужные права

chown mysql:mysql /var/log/mysql.log

и перезапускаем MySQL

/usr/local/etc/rc.d/mysql-server restart

Все, готово, теперь в файл mysql.log у нас будут записываться все запросы к MySQL.

Остается настроить ротацию логов MySQL, так как файл будет расти и может со временем занять все доступное место раздела.

Используем штатное средство FreeBSD — newsyslog
В

/etc/newsyslog.conf

добавляем строку

/var/log/mysql.log  mysql:mysql  600  7  10000 * BCJ  /var/db/mysql/test.local.pid

Расшифровка каждого столбца:
— путь к логу;
— владелец:группа;
— права на лог файл;
— кол-во поколений;
— размер 10 Мб, после которого старый лог будет очищаться;
— не добавлять записей в лог демоном newsyslog;
— создавать лог файл если его нет;
— архивировать поколения bzip2;
— путь к файлу с pid процесса MySQL;

Перезапускаем newsyslog

/etc/rc.d/newsyslog restart

Все готово.

P.S. так же если нужно можно включить логгирование медленных запросов MySQL (например, запросы дольше 5 сек), для этого в /etc/my.cnf в секцию [mysqld] добавляем:

log_slow_queries = ON;
log_slow_queries = /var/log/mysql-slow.log
long_query_time = 5
Поделиться с друзьями или в соц.сетях (спасибо)
Ещё похожие заметки:

Написать

Копирование информации с сайта возможно только с указанием прямой ссылки - https://nemcd.com