Jul 25 2008

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

Category: MySQLIgor @ 00:11

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

# С помощью этого запроса можно увидеть состояние системных переменных.
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;

Материалы по данному вопросу:

Tags:

Leave a Reply