Як я можу ввімкнути журнал повільних запитів MySQL без перезапуску MySQL?


88

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

Чи потрібно робити щось інше, як встановити шлях до файлу?

Згідно з документами MySQL

Якщо значення - file_name не вказано для --log-slow-queries, ім'ям за замовчуванням є 
host_name-slow.log. Сервер створює файл у каталозі даних, якщо тільки
абсолютне ім'я шляху дається, щоб вказати інший каталог. 

Біг

ПОКАЖІТЬ ЗМІННІ

не вказує жодного шляху до журналу, і я не бачу жодного файлу журналу повільних запитів на моєму сервері ...

РЕДАГУВАТИ

Схоже, я використовую сервер версії 5.0.77, тому мені потрібно було зробити:

ВСТАНОВИТИ ГЛОБАЛЬНИЙ log_slow_queries = 1;

але я отримую: ПОМИЛКА 1238 (HY000): Змінна 'log_slow_queries' є змінною лише для читання

Я припускаю, що мені потрібно буде перезапустити сервер і встановити log_slow_queries у моїй конфігурації?


5
Чому б вам не перевірити це на полі розвитку?
Мартін

Відповіді:


93

Спробуйте SET GLOBAL slow_query_log = 'ON';і можливоFLUSH LOGS;

Це передбачає, що ви використовуєте MySQL 5.1 або пізнішої версії. Якщо ви використовуєте попередню версію, вам доведеться перезапустити сервер. Це задокументовано в посібнику MySQL . Ви можете налаштувати журнал або у файлі конфігурації, або в командному рядку.


8
FLUSH повільні журнали доступні у версії 5.5!
Карсон Рейнке

Також працював у мене на 10.0.36-MariaDB. SET GLOBAL slow_query_log = 'OFF';працює, як очікувалось, також. FLUSH LOGSв обох випадках не було необхідним.
rinogo

28

Для повільних запитів версії <5.1 для мене працювала така конфігурація:

log_slow_queries=/var/log/mysql/slow-query.log
long_query_time=20
log_queries_not_using_indexes=YES

Також зверніть увагу, щоб розмістити його під [mysqld]частиною конфігураційного файлу та перезапустити mysqld.


2
Це log_slow_queries, а не log-slow-queries
naomi

6
Плюс вам доведеться створювати файл журналу вручну до:sudo mkdir /var/log/mysql sudo touch /var/log/mysql/slow-query.log sudo chown -R _mysql /var/log/mysql/
Чарльз

1
log_slow_queriesбуло припинено в MySQL 5.1.29 користувачем slow-query-log. MySQL 5.1 Довідкове керівництво має більш детальну інформацію.
Xeoncross

18

Знайти журнал увімкненим чи ні?

SHOW VARIABLES LIKE '%log%';

Встановити журнали: -

SET GLOBAL general_log = 'ON'; 

SET GLOBAL slow_query_log = 'ON'; 


6

Вони працюють

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 дуже високим, таким чином "вимикаючи" журнал повільних запитів. Нижче log_slow_time, щоб увімкнути його. Використовуйте той самий фокус (встановлений у положення ВИМК.) Для log_queries_not_using_indexes.


5

Я думаю, що проблема полягає в тому, що сервер MySQL має права на файл і може редагувати його.

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

Якщо ні, ви завжди можете «перезавантажити» сервер після зміни конфігураційного файлу. На Linux це зазвичай/etc/init.d/mysql reload


Я отримую: ПОМИЛКА 1193 (HY000): Невідома системна змінна 'slow_query_log'
mmattax

Яку версію MySQL ви використовуєте?
Ян Грегорі

3

Якщо ви хочете увімкнути загальні журнали помилок та повільний журнал помилок запиту в таблиці замість файлу

Щоб розпочати вхід в таблицю замість файлу:

set global log_output = “TABLE”;

Щоб увімкнути загальний і повільний журнал запитів:

set global general_log = 1;
set global slow_query_log = 1;

Щоб переглянути журнали:

select * from mysql.slow_log;
select * from mysql.general_log;

Для більш детальної інформації відвідайте це посилання

http://easysolutionweb.com/technology/mysql-server-logs/


1

Це має працювати на mysql> 5.5

ПОКАЗАТИ ЗМІННІ, ЯК "% long%";

ВСТАНОВИТИ ГЛОБАЛЬНО long_query_time = 1;

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.