2011-01-03 6 views
7

Czy istnieje sposób monitorowania/rejestrowania użytkownika MySQL i zapytań, które on/ona przeprowadził? Musiałem wyłączyć ogólny dziennik przy użyciu zapytania:Monitorowanie zapytań użytkownika MySQL

ponieważ w przeciwnym razie plik dziennika nie był bardziej przetwarzalny przez edytory tekstu. Szukałem sposobu na włączenie tego loginu dla niektórych użytkowników, których chcę monitorować, ale wygląda na to, że nie działa w ten sposób.

Czy istnieje inny sposób sprawdzenia wszystkiego, co określony użytkownik uruchamia w mojej bazie danych?

Z góry dziękuję.

Odpowiedz

0

details on logging administration

MySQL Server można utworzyć wiele różnych plików dzienników, które pomogą Ci zobaczyć, co działalność ma miejsce. Zobacz rozdział 5.2, "Logi serwera MySQL". Należy jednak regularnie czyścić te pliki, aby zapewnić, że dzienniki nie zajmą zbyt dużej przestrzeni dyskowej za dużo miejsca na dysku.


W innych systemach, należy zainstalować krótki skrypt sobie, że zaczniesz od cron (lub jego odpowiednik) do obsługi plików dziennika.


Można wymusić MySQL aby rozpocząć korzystanie z nowych plików dziennika przez przepłukiwanie dzienniki. Płukanie dziennika występuje po wydaniu instrukcji FLUSH LOGS lub wykonaniu komend mysqladmin flush-logs, odświeżenia mysqladmin, mysqldump - flush-logs lub mysqldump --master-data.

0

Spójrz na narzędzie mk-query-digest z maatkita, może być w stanie zrobić coś podobnego do tego, co chcesz. Przynajmniej powinno być w stanie pomóc Ci przeanalizować rejestr ogólny zapytania jeśli trzeba włączyć ją ponownie:

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

1

Istnieje kilka sposobów, mogę zaproponować.

  1. SELECT * FROM information_schema.PROCESSLIST WHERE USER="someuser"; Teraz to od Ciebie zależy, z czego korzystasz. Napisz cronjob (linux), aby zapisać go w pliku lub napisać zdarzenie MySQL, aby wprowadzić go do tabeli mysql.
  2. Zastosowanie ogólne dziennika zapytań i narzędzi takich jak Linux awk, sed, grep etc analizować plik dziennika, aby uzyskać pożądany wynik

Ale jeśli nie przyzwyczajać na piśmie polecenie linia Linux Command można użyć mk-query-digest lub nawet potrafi skonfigurować niestandardowe narzędzia monitorujące, takie jak nagios, cacti itp. Ale ja osobiście wolę MONyog, robi on zarówno punkt 1 i 2 doskonale, a najlepiej ze wszystkich ma GUI.

enter image description here