MariaDB/MySQL: general_log — логгирование всех запросов

Автор: | 01/24/2015
 

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

Бывает полезно, что бы отследить какие-то запросы от скриптов.

Проверить включен ли он можно так:

MariaDB [(none)]> SHOW VARIABLES LIKE 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log   | OFF   |
+---------------+-------+

Включаем:

MariaDB [(none)]> SET GLOBAL general_log=1;
Query OK, 0 rows affected (0.06 sec)

Создаём файл лога:

# touch /var/log/mysql_all.log

Меняем пользователя:

# chown mysql /var/log/mysql_all.log

Задаём указание какой файл лога использовать:

MariaDB [(none)]> SET GLOBAL general_log_file='/var/log/mysql_all.log';
Query OK, 0 rows affected (0.00 sec)

Проверяем:

# file /var/log/mysql_all.log
/var/log/mysql_all.log: ASCII text, with very long lines

На случай перезагрузок — добавляем в блок [mysqld] или [mysqld_safe] файла /etc/my.cnf эти же директивы:

general_log = 1
general_log_file = "/var/log/mysql_all.log"

Лог растёт очень быстро, поэтому желательно настроить ротацию логов.