Как я могу включить журнал медленного запроса MySQL, не перезапуская MySQL?

Я следовал инструкциям здесь: http://crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/, но это, кажется, только устанавливает порог.

Я должен сделать что-либо еще, любят, устанавливает filepath?

Согласно документам MySQL

If no file_name value is given for --log-slow-queries, the default name is 
host_name-slow.log. The server creates the file in the data directory unless 
an absolute path name is given to specify a different directory. 

Выполнение

SHOW VARIABLES

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

Править

Похож я использую серверную версию 5.0.77, таким образом, я должен был сделать:

SET GLOBAL log_slow_queries = 1;

но я добираюсь: ОШИБКА 1238 (HY000): Переменная 'log_slow_queries' является переменной только для чтения

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

86
задан mmattax 8 March 2010 в 19:02
поделиться

4 ответа

Руководство по MySQL - файл журнала медленных запросов

Здесь утверждается, что вы можно выполнить следующее, чтобы установить файл медленного журнала (начиная с версии 5.1.6):

set global slow_query_log_file = 'path';

Переменная slow_query_log просто контролирует, включен он или нет.

7
ответ дан 24 November 2019 в 08:02
поделиться

Попробуйте УСТАНОВИТЬ ГЛОБАЛЬНЫЙ slow_query_log = 'ON'; и, возможно, FLUSH LOGS;

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

90
ответ дан 24 November 2019 в 08:02
поделиться

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

Если вы можете получить доступ к файлу, то вы можете попробовать настройку:
SET GLOBAL slow_query_log = 1;

Если нет, вы всегда можете «перезагрузить» сервер после изменения файла конфигурации. В Linux его обычно /etc/init.d/mysql reload

5
ответ дан 24 November 2019 в 08:02
поделиться

Эти работают

SET GLOBAL LOG_SLOW_TIME = 1;
SET GLOBAL LOG_QUERIES_NOT_USING_INDEXES = ON;

Не работает моя установка 5.1.42

SET GLOBAL LOG_SLOW_QUERIES = ON;
SET GLOBAL SLOW_QUERY_LOG = ON;
set @@global.log_slow_queries=1;

http://bugs.mysql.com/bug.php?id=32565

Похоже, лучший способ сделать это - установить log_slow_time очень high, таким образом «отключая» журнал медленных запросов. Уменьшите значение log_slow_time, чтобы включить его. Используйте тот же прием (установите значение OFF) для log_queries_not_using_indexes.

6
ответ дан 24 November 2019 в 08:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: