Nun, nicht alle , Unterdrückung tritt bei einigen auf, die Zeichenfolgen wie "Passwort" enthalten.
McKenzm
1
Außerdem ist es mit Ihrer geöffneten MySQL-CLI normalerweise nicht auf dem neuesten Stand, sodass Sie wahrscheinlich MySQL benötigen, exitum die Datei zu lesen.
Joel Mellon
1
Dies zeigt nur Befehle, die von dem angemeldeten Benutzer ausgeführt werden.
Christia
1
Wie das in windowss geht
ßiansor Å. Ålmerol
Gibt es eine Möglichkeit, dass andere Befehle unterdrückt werden oder dass sie ungeordnet sind? Und aktualisiert sich das Protokoll selbst in Echtzeit?
Drubio
32
Für MySQL> 5.1.11 oder MariaDB
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
Schauen Sie sich den Tisch an mysql.general_log
Wenn Sie in eine Protokolldatei ausgeben möchten:
SET GLOBAL log_output = "FILE";
SET GLOBAL general_log_file = "/path/to/your/logfile.log"
SET GLOBAL general_log = 'ON';
Wie von jeffmjack in den Kommentaren erwähnt, werden diese Einstellungen vor der nächsten Sitzung vergessen, es sei denn, Sie bearbeiten die Konfigurationsdateien (z. B. bearbeiten /etc/mysql/my.cnf, dann neu starten, um Änderungen zu übernehmen).
Nun, wenn Sie möchten, können Sie tail -f /var/log/mysql/mysql.log
Nur eine Klarstellung zu den obigen Punkten: Die Befehle zum Kopieren und Einfügen gelten für eine einzelne Sitzung von MySQL. Sie können diese beispielsweise über die interaktive MySQL-Befehlszeile eingeben. Wenn Sie möchten, dass sie eine dauerhafte Funktion Ihrer MySQL-Instanz sind, müssen Sie diese Befehle in /etc/mysql/my.cnf einfügen und den MySQL-Dienst neu starten.
Jeffmjack
Beachten Sie auch, dass die Protokollierung angehalten wird, wenn sie /path/to/your/logfile.loggelöscht wird, bis Sie sie SET GLOBAL general_log_file = "/path/to/your/logfile.log";erneut ausführen (oder die Sitzung möglicherweise neu starten, wenn Sie die Konfiguration bearbeitet haben?).
Skippy le Grand Gourou
21
(Linux) Öffnen Sie Ihr Terminal, ctrl+alt+t
führen Sie den Befehl aus
cat ~/.mysql_history
Sie werden alle vorherigen MySQL-Abfrageverlauf genießen :)
Aber MySQL Query Browser verwaltet sehr wahrscheinlich eine eigene Liste von Abfragen, die außerhalb der MySQL-Engine ausgeführt werden. Sie müssten dasselbe in Ihrer App tun.
Antworten:
Versuchen
Dies zeigt Ihnen alle MySQL-Befehle, die auf dem System ausgeführt wurden
quelle
exit
um die Datei zu lesen.Für MySQL> 5.1.11 oder MariaDB
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
mysql.general_log
Wenn Sie in eine Protokolldatei ausgeben möchten:
SET GLOBAL log_output = "FILE";
SET GLOBAL general_log_file = "/path/to/your/logfile.log"
SET GLOBAL general_log = 'ON';
Wie von jeffmjack in den Kommentaren erwähnt, werden diese Einstellungen vor der nächsten Sitzung vergessen, es sei denn, Sie bearbeiten die Konfigurationsdateien (z. B. bearbeiten
/etc/mysql/my.cnf
, dann neu starten, um Änderungen zu übernehmen).Nun, wenn Sie möchten, können Sie
tail -f /var/log/mysql/mysql.log
Weitere Infos hier: Server Systemvariablen
quelle
/path/to/your/logfile.log
gelöscht wird, bis Sie sieSET GLOBAL general_log_file = "/path/to/your/logfile.log";
erneut ausführen (oder die Sitzung möglicherweise neu starten, wenn Sie die Konfiguration bearbeitet haben?).(Linux) Öffnen Sie Ihr Terminal,
ctrl+alt+t
führen Sie den Befehl ausSie werden alle vorherigen MySQL-Abfrageverlauf genießen :)
quelle
Sie werden es dort finden
Sie werden es wie folgt lesbar machen (ohne die Escapezeichen):
quelle
Schauen
~/.myslgui/query-browser/history.xml
Sie sich hier die letzten Abfragen an, die mitmysql_query_browser
(einige Tage alt) gemacht wurden.quelle
Sie können den Verlauf von ~ / .mysql_history sehen. Der Inhalt der Datei wird jedoch von wctomb codiert. So zeigen Sie den Inhalt an:
shell> cat ~ / .mysql_history | python2.7 -c "import sys; print (''. join ([l.decode ('Unicode-Escape') für l in sys.stdin]))"
Quelle: Überprüfen Sie den MySQL-Abfrageverlauf über die Befehlszeile
quelle
Sie können sich den Abfrage-Cache ansehen: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm, aber es gibt Ihnen möglicherweise keinen Zugriff auf die tatsächlichen Abfragen und wird sehr Hit-and-Miss, wenn es funktioniert hat (subtiles Wortspiel beabsichtigt)
Aber MySQL Query Browser verwaltet sehr wahrscheinlich eine eigene Liste von Abfragen, die außerhalb der MySQL-Engine ausgeführt werden. Sie müssten dasselbe in Ihrer App tun.
Bearbeiten: Siehe Dan Ms Kommentar, der dazu führt: Wie werden die letzten auf MySQL ausgeführten Abfragen angezeigt? sieht gut aus.
quelle