Как включить медленный журнал запросов на моем сервере? Я включил его на своем локальном хосте, добавив log-slow-queries =[path]
в my.ini
файл, но не знаю, как добавить это на моем сервере. Мой сервер основан на Linux и имеет версию PHP 5.2.16.
Как включить MySQL медленный журнал запросов на моем сервере?
Ответ 1
Включение медленного журнала запросов не имеет ничего общего с версией PHP. Вы должны включить его на сервере MySQL. Вы можете включить двумя способами.
- Во время выполнения
- Во время запуска сервера
Если ваш сервер выше 5.1.6, вы можете установить медленный журнал запросов в самой рабочей среде. Для чего вам необходимо выполнить эти запросы.
set global log_slow_queries = 1;
set global slow_query_log_file = <some file name>;
Или, альтернативно, вы можете установить эти параметры в файлах параметров my.cnf/my.ini
log_slow_queries = 1;
slow_query_log_file = <some file name>;
Если файл опции изменен, необходимо перезапустить сервер MySQL.
Местоположение файла опций mysql можно найти здесь http://dev.mysql.com/doc/refman/4.1/en/mysql-config-wizard-file-location.html
FYI: log_slow_queries
был удален в MySQL 5.6.1 и вместо него используется slow_query_log
.
http://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_log-slow-queries
Но для производительности вы можете установить выход журнала (опция log_output
) на TABLE
.
Также вы можете посмотреть другие медленные параметры журнала запросов, такие как long_query_time
, log-queries-not-using-indexes
Ответ 2
Вы можете установить его временно, выполнив следующие команды:
set global slow_query_log = 1;
set global slow_query_log_file = '/var/log/mysql-slow.log';
но ваши изменения будут отменены при перезапуске mysql.
Вы можете установить его навсегда, добавив в свой файл my.cnf
следующее:
slow-query-log=1
slow-query-log-file=/var/log/mysql-slow.log
Расположение my.cnf
зависит от ОС, но часто встречается в /etc/my.cnf
или /etc/mysql/my.cnf
:
После сохранения изменений вам необходимо перезапустить MySql. Это может зависеть от ОС, но вот некоторые общие примеры:
sudo /etc/init.d/mysqld restart
и
sudo service mysqld restart
Ответ 3
Сначала (как root:)
mkdir /var/log/mysql
touch /var/log/mysql/log-slow-queries.log
chown mysql:mysql -R /var/log/mysql
Затем в [mysqld] в файле /etc/my.conf(или где бы вы ни были: 1)
slow_query_log = 1
log-queries-not-using-indexes
long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log
Далее:
service mysql restart
Наконец:
mysql
mysql> SELECT SLEEP(10);
mysql> quit
Проверка:
cat /var/log/mysql/log-slow-queries.log
/usr/sbin/mysqld, Version: 5.5.42-cll (MySQL Community Server (GPL)). started with:
Tcp port: 0 Unix socket: (null)
Time Id Command Argument
# Time: 150727 0:05:17
# [email protected]: root[root] @ localhost []
# Query_time: 10.000215 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1437973517;
select sleep(10);