Polecenie SQL do wyświetlania historii zapytań


Odpowiedzi:


161

próbować

 cat ~/.mysql_history

to pokaże ci wszystkie polecenia mysql uruchomione w systemie


2
cóż, nie wszystkie , pomijanie występuje w przypadku niektórych, które zawierają ciągi znaków, takie jak „hasło”.
mckenzm

1
Zwykle nie jest też aktualny z otwartym MySQL CLI, więc prawdopodobnie będziesz musiał exitMySQL, a następnie przeczytać plik.
Joel Mellon

1
Pokazuje tylko polecenia wykonane przez zalogowanego użytkownika.
Christia

1
Jak to zrobić w
systemie Windows

Czy istnieje możliwość, że inne polecenia są wygaszone lub są nieuporządkowane? I czy dziennik aktualizuje się sam w czasie rzeczywistym?
Drubio,

32

Dla MySQL> 5.1.11 lub MariaDB

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. Spójrz na stół mysql.general_log

Jeśli chcesz wyprowadzić dane do pliku dziennika:

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

Jak wspomniał jeffmjack w komentarzach, ustawienia te zostaną zapomniane przed następną sesją, chyba że edytujesz pliki konfiguracyjne (np. Edytuj /etc/mysql/my.cnf, a następnie uruchom ponownie, aby zastosować zmiany).

Teraz, jeśli chcesz, możesz tail -f /var/log/mysql/mysql.log

Więcej informacji tutaj: Zmienne systemowe serwera


3
Tylko kilka wyjaśnień do powyższego: Polecenia kopiuj-wklej tutaj dotyczą pojedynczej sesji MySQL, np. Możesz je wprowadzić z interaktywnej linii poleceń MySQL. Jeśli chcesz, aby były one stałą funkcją Twojej instancji MySQL, musisz umieścić te polecenia w /etc/mysql/my.cnf i ponownie uruchomić usługę MySQL.
jeffmjack

Należy również pamiętać, że rejestrowanie zatrzyma się, jeśli /path/to/your/logfile.logzostanie usunięte, do czasu SET GLOBAL general_log_file = "/path/to/your/logfile.log";ponownego wykonania (lub może ponownego uruchomienia sesji, jeśli zmodyfikowałeś konfigurację?).
Skippy le Grand Gourou

21

(Linux) Otwórz terminal i ctrl+alt+t uruchom polecenie

 cat ~/.mysql_history

otrzymasz całą poprzednią historię zapytań mysql ciesz się :)


18

Znajdziesz to tam

~/.mysql_history

Sprawisz, że będzie czytelny (bez znaków specjalnych) w ten sposób:

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

2

Spójrz ~/.myslgui/query-browser/history.xml tutaj możesz znaleźć ostatnie zapytania wykonane za pomocą mysql_query_browser (kilka dni)



-1

Możesz zajrzeć do pamięci podręcznej zapytań: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm, ale może ona nie dawać dostępu do rzeczywistych zapytań i będzie bardzo trafienie i chybienie, jeśli zadziałało (zamierzona subtelna gra słów)

Ale przeglądarka zapytań MySQL najprawdopodobniej utrzymuje własną listę zapytań, które uruchamia, poza silnikiem MySQL. Musiałbyś zrobić to samo w swojej aplikacji.

Edycja: zobacz komentarz dan m prowadzący do tego: Jak wyświetlić ostatnie zapytania wykonane na MySQL? wygląda dobrze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.