MySQL

Журнал общих запросов Mysql general_log_file

Автор: GAMER вкл. .

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

# С помощью этого запроса можно увидеть состояние системных переменных.
mysql> show variables
where Variable_name in ('version', 'log', 'general_log', 'general_log_file', 'log_output');
+------------------+---------------------------------------+
| Variable_name    | Value                                 |
+------------------+---------------------------------------+
| general_log      | OFF |
| general_log_file | /usr/local/mysql/data/datacharmer.log |
| log              | OFF |
| log_output       | FILE                                  |
| version          | 5.1.25-rc-community-log               |
+------------------+---------------------------------------+
# Показать значения всех переменных для логов, плюс и медленные запросы
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'log%'
OR Variable_name LIKE 'general_log%'
OR Variable_name LIKE 'long%' OR Variable_name LIKE '%slow%'
OR Variable_name = 'version' ;
 

Параметр log_output может принимать значения: FILE или TABLE. Возможность вести журнал событий в таблице появилась с MySQL 5.1.

Изменить значения переменных можно как в файлах конфигурации my.cnf так и напрямую, например:

mysql> SET GLOBAL general_log_file='/tmp/mysql/general.log';
mysql> SET GLOBAL general_log=ON;
# Переключение на таблицу
mysql> set global log_output='TABLE';
# Запросы из таблицы
mysql> select count(*) from mysql.general_log;
# Очищаем таблицу логов
mysql> truncate mysql.general_log;
# Включение журналирования одновременно как в таблицу, так и в файл
mysql> set global log_output='TABLE,FILE';
# Выключение журналирования и очищения таблицы
mysql> set sql_log_off=0;
mysql> truncate mysql.general_log;