Я выполнил инструкции здесь: http://crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/, но это, похоже, только устанавливает порог.
Мне нужно что-то еще, например, установить путь к файлу?
Согласно документам MySQL
Если для --log-slow-questions не указано значение file_name, по умолчанию используется имя имя_хоста-slow.log. Сервер создает файл в каталоге данных, если только дается имя абсолютного пути для указания другого каталога.
Бег
ПОКАЗАТЬ ПЕРЕМЕННЫЕ
не указывает путь к файлу журнала, и я не вижу файл журнала медленных запросов на моем сервере ...
РЕДАКТИРОВАТЬ
Похоже, я использую сервер версии 5.0.77, поэтому мне нужно было сделать:
УСТАНОВИТЬ ГЛОБАЛЬНЫЙ log_slow_queries = 1;
но я получаю: ОШИБКА 1238 (HY000): переменная log_slow_queries предназначена только для чтения.
Я предполагаю, что мне нужно будет перезагрузить сервер и в моей конфигурации установить log_slow_queries?
Ответы:
Попробуйте
SET GLOBAL slow_query_log = 'ON';
и возможноFLUSH LOGS;
Предполагается, что вы используете MySQL 5.1 или новее. Если вы используете более раннюю версию, вам необходимо перезапустить сервер. Это описано в Руководстве по MySQL . Вы можете настроить журнал либо в файле конфигурации, либо в командной строке.
источник
SET GLOBAL slow_query_log = 'OFF';
работает, как ожидалось.FLUSH LOGS
в любом случае не было необходимости.Для медленных запросов на версии <5.1 у меня работала следующая конфигурация:
Также обратите внимание, чтобы поместить его в
[mysqld]
часть файла конфигурации и перезапуститьmysqld
.источник
sudo mkdir /var/log/mysql
sudo touch /var/log/mysql/slow-query.log
sudo chown -R _mysql /var/log/mysql/
log_slow_queries
устарел в MySQL 5.1.29 пользователемslow-query-log
. MySQL 5.1 Справочное руководство имеет более подробную информацию.Находить журнал включенным или нет?
SHOW VARIABLES LIKE '%log%';
Установите журналы: -
SET GLOBAL general_log = 'ON'; SET GLOBAL slow_query_log = 'ON';
источник
Руководство по MySQL - файл журнала медленных запросов
Это утверждает, что вы можете запустить следующее, чтобы установить файл медленного журнала (начиная с версии 5.1.6):
set global slow_query_log_file = 'path';
Переменная slow_query_log просто контролирует, включена она или нет.
источник
Эти работы
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, чтобы включить его. Используйте тот же прием (установите значение OFF) для log_queries_not_using_indexes.
источник
Я думаю, проблема в том, чтобы убедиться, что сервер MySQL имеет права на файл и может его редактировать.
Если вы можете получить доступ к файлу, вы можете попробовать установить:
SET GLOBAL slow_query_log = 1;
Если нет, вы всегда можете «перезагрузить» сервер после изменения файла конфигурации. В Linux это обычно
/etc/init.d/mysql reload
источник
Если вы хотите включить общие журналы ошибок и журнал ошибок медленного запроса в таблице вместо файла
Чтобы начать регистрацию в таблице вместо файла:
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/
источник
Это должно работать на mysql> 5.5
источник