Wie kann ich die zuletzt ausgeführten Abfragen in MySQL in einem Live-Feed-Format anzeigen?
Ich möchte mein Terminalfenster geöffnet lassen und MySQL-Abfragen auf dem Bildschirm erscheinen lassen, wenn etwas ausgeführt wird. Ich weiß, dass ich das mit dem Tail-Befehl machen kann, aber ich bin mir nicht sicher, wo die MySQL-Protokolle gespeichert sind. Ich kann auch mysqladmin proc ausführen, aber damit bekomme ich keinen kontinuierlichen Live-Feed.
Antwort1
Hier haben Sie mehrere Möglichkeiten. Sie können die allgemeine Abfrageprotokollierung für MySQL aktivieren, indem Sie Folgendes hinzufügen:
log = /path/to/your/log.log
zu Ihrer my.cnf (normalerweise /etc/my.cnf) und Neustart. Sie können es dann nach Bedarf anpassen. Ich würde das nicht unbedingt empfehlen, da dieses Protokoll mit der Zeit ziemlich groß werden kann.
Ihre zweite Option ist, wie Sie erwähnt haben, die Verwendung von watch in Verbindung mit mysqladmin proc. Sie können beispielsweise Folgendes verwenden:
watch -n.5 'mysqladmin proc stat'
um Ihnen alle halbe Sekunde die Prozessliste und den Status anzuzeigen. Sie können -n.5 Ihren spezifischen Anforderungen entsprechend ändern (ich füge der Zeile lieber stat hinzu, um zusätzliche Informationen bereitzustellen, was manchmal hilfreich sein kann).
Antwort2
Alle Abfragen werden in eine Datei namens „.mysqlhistory“ auf dem System geschrieben. Sie können den folgenden Befehl ausführen, um die Abfragen, die auf Ihrer Datenbank ausgeführt werden, aktiv anzuzeigen.
finden / -name ".mysqlhistory" -exec 'tail -f'