2011-01-03 8 views
7

Gibt es eine Möglichkeit, einen MySQL-Benutzer und die Abfragen, die er/sie ausgeführt hat, zu überwachen/zu protokollieren? Ich musste das allgemeine Protokoll mit der Abfrage deaktivieren:Überwachungsabfragen eines MySQL-Benutzers

, weil sonst die Protokolldatei nicht mehr von Text-Editoren verarbeitet werden konnte. Ich suchte nach einer Möglichkeit, diese Anmeldung für einige Benutzer, die ich überwachen möchte, zu aktivieren, aber es scheint nicht so zu funktionieren.

Gibt es eine andere Möglichkeit, alles zu wissen, was ein bestimmter Benutzer in meiner Datenbank ausführt?

Vielen Dank im Voraus.

Antwort

0

details on logging administration

MySQL Server kann eine Reihe von verschiedenen Protokolldateien erstellen, Ihnen zu helfen zu sehen, welche Aktivität stattfindet. Siehe Abschnitt 5.2, "MySQL Server Logs". Sie müssen diese Dateien jedoch regelmäßig bereinigen, um sicherzustellen, dass die Protokolle nicht zu viel Speicherplatz belegen.


Auf anderen Systemen müssen Sie ein kurzes Skript selbst installieren, dass Sie von cron (oder dessen Äquivalent) starten für Protokolldateien.


Sie MySQL zwingen kann, mit neuen Log-Dateien durch Spülen der Protokolle zu starten. Wenn Sie eine FLUSH LOGS-Anweisung ausführen oder einen Befehl mysqladmin flush-logs, mysqladmin refresh, mysqldump --flush-logs oder mysqldump --master-data ausführen, wird eine Protokolllöschung ausgeführt.

0

Werfen Sie einen Blick auf die mk-Abfrage-Digest-Tool von maatkit, kann es in der Lage sein, etwas Ähnliches zu tun, was Sie wollen. Zumindest sollte es in der Lage sein, Ihnen die allgemeine Abfrageprotokoll zu helfen, zu analysieren, wenn Sie es ermöglichen, haben wieder:

http://www.maatkit.org/doc/mk-query-digest.html

1

Es gibt ein paar Möglichkeiten, die ich vorschlagen kann.

  1. SELECT * FROM information_schema.PROCESSLIST WHERE USER="someuser"; Jetzt liegt es an Ihnen, was Sie verwenden. Schreiben Sie einen Cronjob (linux), um ihn in einer Datei zu speichern, oder schreiben Sie ein MySQL-Event, um es in eine mysql-Tabelle einzugeben.
  2. Gebrauch Allgemeines Abfrageprotokoll und benutzerfreundlichen Tools wie Linux awk, sed, grep etc die Log-Datei zu analysieren erwünschtes Ergebnis

zu bekommen, aber wenn Sie nicht Befehlszeile Linux-Befehls in dem Schreiben daran gewöhnen, werden Sie verwenden können mk-query-digest oder Sogar können Sie benutzerdefinierte Überwachungs-Tools wie nagios, cacti etc. konfigurieren. Aber ich persönlich bevorzuge MONyog, es macht Punkt 1 und 2 perfekt und das Beste von allem, es hat eine GUI.

enter image description here