Я намагаюся ввімкнути повільний журнал запитів на нашому сервері, щоб виявити будь-які запити, які можуть використовувати оптимізацію. Звучить досить просто, проте мій файл не записується. Я не отримую жодних помилок і нічого подібного, воно, схоже, не записує повільні запити. Я згадав перезапустити mysql після зміни конфігурації.
Я використовую MySQL Ver 5.1.61. Ось що я маю в my.cnf:
slow-query-log=1
slow-query-log-file=/var/logs/my.slow.log
long_query_time=1
файл /var/logs/my.slow.log є mysql як власник, також в інтересах налагодження я дав читати / записувати всім у файлі журналу.
У мене у long_query_time встановлено значення 1 вище, тому що я просто хочу перевірити, чи працює він. Я спробував встановити його нижче (наприклад, 0,3), але все ще нічого не отримую. Я знаю, що запити, на які працює моя програма, займають більше 1 секунди, і я також навмисно запускав запити ( SELECT sleep(10);
) в терміналі для тестування, і журнал все ще порожній.
Я переглянув документи, і, як я бачу, це має працювати. У когось є якісь пропозиції щодо того, що я роблю неправильно? Будь-яка порада буде вдячна, велике спасибі!
Редагувати: За запитанням у коментарях, я запустив запит:
`SELECT variable_value FROM information_schema.global_variables WHERE variable_name IN ('slow_query_log','slow_query_log_file','long_query_time');`
Результат:
10.0000000
/var/run/mysqld/mysqld-slow.log
OFF
Очевидно, що зміни моєї конфігурації не враховуються, оскільки я вважаю, що це за замовчуванням. Я повністю впевнений, що файл my.cnf, який я змінюю, аналізується так, як якщо б я вставив недійсне значення mysql, при перезапуску буде помилка. Що тут може статися?
Ще одна редакція:
Після отримання порад @RolandoMySQLDBA та переміщення моїх повільних конфігураційних рядків запитів до [mysqld]
моїх налаштувань, здається, економиться. Тепер результат вищезазначеного запиту змінної цінності:
1.0000000
/var/logs/my.slow.log
ON
Однак я все ще не бачу, як файл my.slow.log записується. Я не думаю, що це проблема дозволів, оскільки файл належить mysql, і я додав усі дозволи для всіх користувачів у файлі. Чи може хтось придумати причину, чому це не працює?
Редагувати: вирішено! Шлях до журналу повільних запитів був неправильним, він повинен був /var/log/my.slow.log замість / var / log * s * / my.slow.log. Дякую всім за допомогу, я все навчився!
SET GLOBAL log_output=FILE
виправив це для мене.
SELECT variable_value FROM information_schema.global_variables WHERE variable_name IN ('slow_query_log','slow_query_log_file','long_query_time');
та опублікуйте його вихід.