Comando SQL per visualizzare la cronologia delle query


Risposte:


161

provare

 cat ~/.mysql_history

questo ti mostrerà tutti i comandi mysql eseguiti sul sistema


2
beh, non tutti , la soppressione avviene per alcuni che contengono stringhe come "password".
mckenzm

1
Inoltre, di solito non è aggiornato con la tua CLI MySQL aperta, quindi è probabile che tu debba exitleggere il file su MySQL.
Joel Mellon

1
Mostra solo i comandi eseguiti dall'utente che ha effettuato l'accesso.
Christia

1
Come farlo in
Windows

C'è la possibilità che altri comandi vengano soppressi o che non siano ordinati? E il registro si aggiorna da solo in tempo reale?
Drubio

32

Per MySQL> 5.1.11 o MariaDB

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. Dai un'occhiata al tavolo mysql.general_log

Se desideri eseguire l'output in un file di registro:

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

Come menzionato da jeffmjack nei commenti, queste impostazioni verranno dimenticate prima della prossima sessione a meno che non modifichi i file di configurazione (es. Modifica /etc/mysql/my.cnf, quindi riavvia per applicare le modifiche).

Ora, se vuoi, puoi tail -f /var/log/mysql/mysql.log

Maggiori informazioni qui: Variabili di sistema del server


3
Solo alcuni chiarimenti su quanto sopra: i comandi copia-incolla qui sono per una singola sessione di MySQL, ad esempio puoi inserirli dalla riga di comando interattiva di MySQL. Se vuoi che siano una funzionalità permanente della tua istanza MySQL, devi inserire quei comandi in /etc/mysql/my.cnf e riavviare il servizio MySQL.
jeffmjack

Si noti inoltre che la registrazione si interromperà se /path/to/your/logfile.logviene eliminata, fino a quando non verrà eseguita di SET GLOBAL general_log_file = "/path/to/your/logfile.log";nuovo (o forse si riavvierà la sessione se si è modificata la configurazione?).
Skippy le Grand Gourou

21

(Linux) Apri il tuo terminale e ctrl+alt+t esegui il comando

 cat ~/.mysql_history

otterrai tutta la precedente cronologia delle query mysql divertiti :)


18

Lo troverai lì

~/.mysql_history

Lo renderai leggibile (senza gli escape) in questo modo:

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

2

Guarda ~/.myslgui/query-browser/history.xml qui puoi trovare le ultime query fatte con mysql_query_browser (alcuni giorni fa)



-1

Puoi guardare la cache delle query: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm ma potrebbe non darti accesso alle query effettive e sarà molto hit-and-miss se ha funzionato (sottile gioco di parole)

Ma MySQL Query Browser molto probabilmente mantiene il proprio elenco di query che esegue, al di fuori del motore MySQL. Dovresti fare lo stesso nella tua app.

Modifica: vedi il commento di dan m che porta a questo: come mostrare le ultime query eseguite su MySQL? sembra sano.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.