GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So aktivieren Sie die MySQL/MariaDB-Abfrageprotokollierung

In dieser kurzen und leicht verständlichen Anleitung behandeln wir, wie Sie die MySQL/MariaDB-Abfrageprotokollierung aktivieren und Abfragen in einer Datei speichern.

Bei der Verwendung einer Datenbank kommt es häufig vor, dass Entwickler wissen wollen, was hinter den Kulissen vor sich geht. Ob zur Fehlerbehebung, Leistungsoptimierung oder aus purer Neugier.

Allgemeine Abfrageprotokolle bleiben eine der beliebtesten Quellen für Prüf- und Diagnoseinformationen in MySQL/MariaDB-Datenbanken. Nachdem die Protokollierung aktiviert wurde, schreibt der Datenbankserver Informationen in die Protokolldatei, wenn Clients eine Verbindung herstellen oder trennen, und er protokolliert jede SQL-Anweisung.

Beachten Sie jedoch, dass die Aktivierung des allgemeinen Abfrageprotokolls die Leistung von MySQL/MariaDB beeinträchtigt. Dadurch wird der Durchsatz um etwa 13 % verringert und die Antwortzeit vom MySQL/MariaDB-Server um etwa 17 % erhöht.

Beginnen wir also ohne weiteres, denn der Prozess ist ziemlich einfach.

Aktivieren Sie die allgemeine MySQL/MariaDB-Abfrageprotokollierung

In MySQL/MariaDB ist das allgemeine Abfrageprotokoll standardmäßig deaktiviert.

1. Geben Sie als root in das Befehlszeilentool des MySQL/MariaDB-Servers ein:

mysql -u root -p

2. Legen Sie den allgemeinen Protokolldateipfad auf /var/logs/mysql/general-query.log fest indem Sie die folgende Abfrage ausführen.

SET GLOBAL general_log_file='/var/log/mysql/general-query.log';

Standardmäßig wird das allgemeine Abfrageprotokoll in dasselbe Datenverzeichnis geschrieben, das die Datenbankunterverzeichnisse selbst enthält (normalerweise /var/lib/mysql ) und der Name der Protokolldatei ist standardmäßig der Hostname. Wie Sie sehen können, kann dies jedoch geändert werden.

3. Aktivieren Sie das allgemeine Serverprotokoll:

SET GLOBAL general_log = 1;

Lassen Sie uns noch einmal den Status des allgemeinen MySQL/MariaDB-Abfrageprotokolls überprüfen:

SHOW VARIABLES LIKE "general_log%";

Das ist es. Von hier an können Sie etwas Ähnliches wie sudo tail -f tun auf der general-query.log Datei von der Kommandozeile und behalten Sie alles im Auge.

Sobald Sie mit Ihrer Inspektion fertig sind, können Sie die MySQL/MariaDB-Abfrageprotokollierung wie folgt deaktivieren:

SET GLOBAL general_log = 0;

Es ist sicherlich nicht wünschenswert, die Protokollierung auf einem Produktionsserver aktiviert zu haben. Seien Sie also vorsichtig damit, die Protokolldatei kann ziemlich schnell groß werden.

Wenn Sie Abfragen nicht direkt ausführen möchten, können Sie dennoch die MySQL/MariaDB-Abfrageprotokollierung aktivieren, indem Sie die MySQL/MariaDB-Konfigurationsdatei direkt ändern, aber denken Sie daran, dass dieser Ansatz einen Neustart des Datenbankservers erfordert.

Schlussfolgerung

Das allgemeine MySQL/MariaDB-Abfrageprotokoll kann sehr nützlich sein, wenn Sie einen Fehler in einem Client vermuten und genau wissen möchten, was der Client an die Datenbank gesendet hat. Wenn Sie also einen Fehler oder ein Problem mit der Datenbank haben, können Sie das Problem verfolgen, indem Sie dieses Protokoll aktivieren und überprüfen, was passiert.

Weitere Informationen zum Aktivieren des allgemeinen MySQL/MariaDB-Abfrageprotokolls finden Sie hier und hier.


Linux
  1. So stoppen Sie einen Prozess in MySQL

  2. Wo ist das Cron/Crontab-Protokoll? / Wie aktiviere ich das Cron-Protokoll?

  3. Wie aktiviere ich das Abfrageprotokoll von MySQL (siehe Alle SQL-Abfragen, wie sie kommen)?

  4. So ersetzen Sie MySQL durch MariaDB unter CentOS 6

  5. Wie aktiviere ich die error-log.txt-Protokollierung mithilfe der .htaccess-Datei?

So exportieren Sie MySQL-Abfrageergebnisse in das CSV-Format unter Linux

Wie melde ich mich als Root in Mysql an?

So installieren Sie MySQL/MariaDB unter Debian 11

So ändern / setzen Sie das MySQL- oder MariaDB-Root-Passwort zurück

Wie aktiviere ich die erweiterte Protokollierung in Exim?

So erstellen Sie eine Rsyslog-Konfiguration für die zentrale Protokollierung