Есть ли какой-либо запрос/способ показать последние запросы, выполняемые на серверах ВСЕ?
Как показать последние запросы, выполняемые в MySQL?
Ответ 1
Для тех, кто благословлен 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 - Системные переменные сервера - общий_лог
Ответ 2
Вы можете включить общий журнал запросов для такого рода диагностики. Как правило, вы не регистрируете все запросы SELECT на рабочем сервере, но это убийца производительности.
Отредактируйте конфигурацию MySQL, например. /etc/mysql/my.cnf - найдите или добавьте строку, подобную этой
[mysqld]
log = /var/log/mysql/mysql.log
Перезагрузите mysql, чтобы получить это изменение, теперь вы можете
tail -f /var/log/mysql/mysql.log
Hey presto, вы можете смотреть запросы, когда они входят.
Ответ 3
Вы можете сделать текущую вещь для мониторинга журналов запросов 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
Ответ 4
SELECT * FROM mysql.general_log WHERE command_type ='Query' LIMIT total;
Ответ 5
Возможно, вы могли бы найти это, посмотрев .
Ответ 6
Если mysql binlog включен, вы можете проверить команды, выполняемые пользователем, выполнив следующую команду в консоли linux путем просмотра в каталоге binlog mysql
mysqlbinlog binlog.000001 > /tmp/statements.sql
включение
[mysqld]
log = /var/log/mysql/mysql.log
или общий журнал будет влиять на производительность mysql
Ответ 7
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
Ответ 8
Вы можете посмотреть следующее в linux
cd /root
ls -al
vi .mysql_history
Это может помочь
Ответ 9
Если вам не хочется менять конфигурацию MySQL, вы можете использовать профилировщик SQL, например "Neor Profile SQL" http://www.profilesql.com.