%2C%20indem%20Sie%20eine%20Verbindung%20zu%20einem%20MySQL-Server%20herstellen.png)
Ich habe MySQL auf meinem Ubuntu-Server installiert. Da ich die Benutzer bereinigen möchte, die derzeit in MySQL aktiv sind, möchte ich zunächst überprüfen, welche Benutzer – und von welchem Host aus – eine Verbindung zum MySQL-Server herstellen.
Ich brauche nur: welcher Host verbindet sich und welcher Benutzername wird verwendet.
Ich habe versucht, diese Aufgabe mit tcpdump auszuführen, aber bisher ohne Erfolg. Es sieht einfach aus, die gesamte Abfrage abzurufen, aber ich erhalte die oben genannten Informationen nicht. Der Server ist stark ausgelastet. Wenn es keine andere Option gibt, kann ich das allgemeine Abfrageprotokoll aktivieren, aber wenn es möglich ist, möchte ich diese Option deaktivieren.
Hat jemand einen Tipp für mich wie ich diese Aufgabe erledigen kann?
Antwort1
- Liste der aktuell aktiven Sitzungen
In Ihrer MySQL-Eingabeaufforderung können Sie Folgendes eingeben, um aktuell aktive Sitzungen anzuzeigen:
mysql> show processlist;
Oder diese MySQL-Abfrage (die dieselben Informationen zurückgibt):
mysql> select * from information_schema.processlist;
Und Sie können das {user,host}-Paar möglicherweise nur wie folgt erhalten:
mysql> select User,Host from information_schema.processlist;
- Protokollieren und Abfrageverlauf anzeigen.
Aktivieren Sie das MySQL-Abfrageprotokoll
set global log_output = 'table';
set global general_log = 'on';
Alle ausgeführten Abfragen anzeigen
select * from mysql.general_log;
Sehen Sie sich den Zeitstempel, den Host-Benutzer und die zugehörige Abfrage an:
select event_time,user_host,argument from mysql.general_log;
Ich hoffe es hilft.