Команда SQL для відображення історії запитів


112

Я хотів би показати свою виконану історію команд sql у своєму браузері запитів MYSQL. Що таке оператор sql для відображення історії?


6
звучить як репост цього питання: stackoverflow.com/questions/650238/…
lazarus

Відповіді:


161

спробуйте

 cat ~/.mysql_history

це покаже вам всі команди mysql, запущені в системі


2
ну не все , придушення відбувається для деяких, які містять рядки типу "пароль".
mckenzm

1
Він також зазвичай не є актуальним для вашого відкритого MySQL CLI, тому вам, ймовірно, доведеться в exitMySQL потім прочитати файл.
Джоел Меллон

1
Це тільки показує команди , що виконуються користувачем , який зареєстрований в системі .
Крістен

1
Як це зробити у
windowss

Чи є можливість, щоб інші команди були придушені або вони були не упорядковані? І чи журнал оновлює його в режимі реального часу?
Drubio

32

Для MySQL> 5.1.11 або MariaDB

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. Погляньте на стіл mysql.general_log

Якщо ви хочете вивести файл журналу:

  1. SET GLOBAL log_output = "FILE";
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log"
  3. SET GLOBAL general_log = 'ON';

Як згадував jeffmjack в коментарях, ці налаштування забудуться перед наступним сеансом, якщо ви не редагуєте конфігураційні файли (наприклад, редагуйте /etc/mysql/my.cnf, а потім перезапустіть, щоб застосувати зміни).

Тепер, якщо хочете, можете tail -f /var/log/mysql/mysql.log

Більше інформації тут: Змінні системи сервера


3
Лише деякі пояснення до вищезазначеного: Команди копіювання-вставки тут призначені для одного сеансу MySQL, наприклад, ви можете ввести їх з інтерактивного командного рядка MySQL. Якщо ви хочете, щоб вони були постійною особливістю вашого примірника MySQL, вам потрібно помістити ці команди в /etc/mysql/my.cnf і перезапустити службу MySQL.
jeffmjack

Також зауважте, що реєстрація припиняється, якщо /path/to/your/logfile.logїї видалити, доки ви не виконаєте SET GLOBAL general_log_file = "/path/to/your/logfile.log";знову (або, можливо, не перезапустите сеанс, якщо ви відредагували конфігурацію?).
Skippy le Grand Gourou

21

(Linux) Відкрийте свій термінал, ctrl+alt+t виконайте команду

 cat ~/.mysql_history

ви отримаєте всю попередню історію запитів mysql насолоджуйтесь :)


18

Ви знайдете його там

~/.mysql_history

Ви зробите це читабельним (без втечі) так:

sed "s/\\\040/ /g" < .mysql_history

2

Подивіться ~/.myslgui/query-browser/history.xml тут, ви можете знайти останні запити, зроблені за mysql_query_browser (кілька днів)



-1

Ви можете подивитися кеш запитів: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm, але це може не дати вам доступу до власних запитів і буде дуже удари, якщо це все спрацювало (тонкий каламбур призначений)

Але браузер MySQL Query Browser, швидше за все, підтримує власний список запитів, які він виконує, поза механізмом MySQL. Вам потрібно було б зробити те ж саме у своєму додатку.

Редагувати: дивіться коментар dan m, що веде до цього: Як показати останні запити, виконані на MySQL? виглядає звуком.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.