Как показать последние запросы, выполняемые в MySQL?

Есть ли какой-либо запрос/способ показать последние запросы, выполняемые на серверах ВСЕ?

+356
16 мар. '09 в 12:35
источник поделиться
9 ответов

Для тех, кто благословлен MySQL >= 5.1.12, вы можете управлять этим параметром во всем мире во время выполнения:

  • Выполнить SET GLOBAL log_output = 'TABLE';
  • Выполнить SET GLOBAL general_log = 'ON';
  • Взгляните на таблицу mysql.general_log

Если вы предпочитаете выводить в файл вместо таблицы:

  • SET GLOBAL log_output = "FILE"; по умолчанию.
  • SET GLOBAL general_log_file = "/path/to/your/logfile.log";
  • SET GLOBAL general_log = 'ON';

Я предпочитаю этот метод для редактирования файлов .cnf, потому что:

  • вы не редактируете файл my.cnf и, возможно, постоянно включаете ведение журнала
  • вы не ловите рыбу вокруг файловой системы, которая ищет журнал запросов - или, что еще хуже, отвлекается на необходимость идеального назначения. /var/log /var/data/log /opt /home/mysql_savior/var
  • перезапуск сервера оставляет вас там, где вы начали (по умолчанию по умолчанию отключен)
  • Вам не нужно перезапускать сервер и прерывать любые текущие подключения к нему.

Для получения дополнительной информации см. Справочное руководство MySQL 5.1 - Системные переменные сервера - общий_лог

+586
24 мар. '09 в 17:02
источник

Связанные вопросы


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

Вы можете включить общий журнал запросов для такого рода диагностики. Как правило, вы не регистрируете все запросы SELECT на рабочем сервере, но это убийца производительности.

Отредактируйте конфигурацию MySQL, например. /etc/mysql/my.cnf - найдите или добавьте строку, подобную этой

[mysqld]
log = /var/log/mysql/mysql.log

Перезагрузите mysql, чтобы получить это изменение, теперь вы можете

tail -f /var/log/mysql/mysql.log

Hey presto, вы можете смотреть запросы, когда они входят.

+37
16 мар. '09 в 12:40
источник

Вы можете сделать текущую вещь для мониторинга журналов запросов mysql.

Откройте конфигурационный файл mysql my.cnf

sudo nano /etc/mysql/my.cnf

Искать следующие строки под заголовком [mysqld] и раскомментировать эти строки для включения журнала

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

Перезагрузите сервер mysql для отражения изменений

sudo service mysql start

Мониторинг журнала сервера mysql со следующей командой в терминале

tail -f /var/log/mysql/mysql.log
+11
30 мар. '15 в 10:15
источник
SELECT * FROM  mysql.general_log  WHERE command_type ='Query' LIMIT total;
+9
18 июн. '15 в 17:49
источник

Если mysql binlog включен, вы можете проверить команды, выполняемые пользователем, выполнив следующую команду в консоли linux путем просмотра в каталоге binlog mysql

mysqlbinlog binlog.000001 >  /tmp/statements.sql

включение

[mysqld]
log = /var/log/mysql/mysql.log

или общий журнал будет влиять на производительность mysql

+3
09 февр. '14 в 9:02
источник

Возможно, вы могли бы найти это, посмотрев .

+3
16 мар. '09 в 12:39
источник

1) Если общее ведение журнала mysql включено, мы можем проверить запросы в файле журнала или таблице на основе того, что мы упоминали в конфиге. Проверьте, что включено с помощью следующей команды

mysql> show variables like 'general_log%';
mysql> show variables like 'log_output%';

Если нам нужна история запросов в таблице, то

Execute SET GLOBAL log_output = 'TABLE';
Execute SET GLOBAL general_log = 'ON';

Взгляните на таблицу mysql.general_log

Если вы предпочитаете выводить в файл:

SET GLOBAL log_output = "FILE"; which is set by default.
SET GLOBAL general_log_file = "/path/to/your/logfile.log";
SET GLOBAL general_log = 'ON';

2) Мы также можем проверить запросы в файле .mysql_history cat ~/.mysql_history

+3
26 нояб. '15 в 7:02
источник

Вы можете посмотреть следующее в linux

cd /root

ls -al

vi .mysql_history Это может помочь

+2
17 апр. '13 в 9:01
источник

Если вам не хочется менять конфигурацию MySQL, вы можете использовать профилировщик SQL, например "Neor Profile SQL" http://www.profilesql.com.

+1
12 февр. '16 в 0:13
источник

Посмотрите другие вопросы по меткам или Задайте вопрос