Im Allgemeinen verfügt ausgereifte Software über eigene Protokolldateien. Verwenden Sie diese Protokolle, um Probleme schnell zu lokalisieren. In MySQL sind Protokolle in die folgenden Kategorien unterteilt:
Langsames Abfrageprotokoll Wenn die Ausführungszeit von SQL den festgelegten Wert überschreitet, wird dies aufgezeichnet
Fehlerprotokoll: Wenn beim Starten, Stoppen oder Ausführen von MySQL ein Fehler auftritt, wird dieser im Fehlerprotokoll aufgezeichnet
Binärprotokoll, dieses Protokoll zeichnet die SQL-Anweisungen auf, die sich ändern Durch ihn können wir MySQL-Daten wiederherstellen.
Abfrageprotokoll wird aufgezeichnet.
Heute werden wir über langsame Abfragen, Fehlerprotokolle, Abfrageprotokolle und binäre Protokolldateien sprechen. Wir werden sie später in einem neuen Artikel ausführlich erläutern.
Fehlerprotokoll
Das Fehlerprotokoll zeichnet Probleme auf, die beim Starten und Stoppen von MySQL auftreten, und zeichnet auch größere Probleme auf, die beim Ausführen von MySQL auftreten . . Sie können Show-Variablen wie „log_err%“ verwenden, um den Speicherort der Fehlerprotokolldatei anzuzeigen.
mysql> show variables like 'log_err%'; +---------------------+-------------------------------+ | Variable_name | Value | +---------------------+-------------------------------+ | log_error | ./iZbp171edtq2kx5iy0xufeZ.err | | log_error_verbosity | 3 | +---------------------+-------------------------------+ 2 rows in set (0.01 sec)
Das Fehlerprotokoll verwendet standardmäßig den Hostnamen als Dateinamen, err als Suffix und wird im Verzeichnis /var unter dem MySQL-Verzeichnis gespeichert. Wenn wir es ändern möchten, können wir das Element log_error in der Konfigurationsdatei ändern. Sie können einen relativen oder einen absoluten Pfad verwenden. Wenn Sie einen relativen Pfad verwenden, ändern Sie nur den Namen der Fehlerprotokolldatei. Wenn Sie einen absoluten Pfad verwenden, können Sie den Speicherort des Fehlerprotokolls ändern.
Das Anzeigen des Fehlerprotokolls ist ebenfalls sehr einfach. Verwenden Sie einfach cat oder vim, um es anzuzeigen.
Allgemeines Abfrageprotokoll
Das allgemeine Abfrageprotokoll zeichnet alle Benutzervorgänge auf, nimmt daher im Allgemeinen viel Platz ein und wird im Allgemeinen täglich verwendet Betrieb und Wartung Es wird nicht aktiviert und das Protokoll ist standardmäßig ebenfalls geschlossen. Wenn Sie es aktivieren möchten, können Sie die Protokolloption zur Konfigurationsdatei hinzufügen.
Slow Query Log
Slow Query ist ein sehr gutes Tool zur Fehlerbehebung bei SQL-Problemen. In vielen Fällen ist es unser SQL, das das verursacht System läuft nicht rund. Der Autor hat diesen Fehler schon einmal gemacht, indem er eine sehr komplexe Abfrageanweisung verwendet hat, und das System hat 502 erhalten, sobald sie veraltet war. Vor einiger Zeit stellte ich fest, dass das alte Projekt des Unternehmens auch entsprechende Probleme hatte. Wenn die Datenmenge ein bestimmtes Niveau erreichte, traten viele langsame Abfragen auf und die CPU des gesamten Systems war voll. Daher müssen wir das Protokoll der langsamen Abfrage regelmäßig überprüfen, um das SQL-Problem zu finden.
Konfigurationselement für langsame Abfragen
slow-query-log={0|off|1|on} Ob Aktivieren Sie die Protokollfunktion für langsame Abfragen
Der durch slow-query-time=10 festgelegte Schwellenwert in Sekunden unterstützt Gleitkommazahlen. Wenn die Ausführungszeit von SQL diesen Wert überschreitet, wird dies im langsamen Abfrageprotokoll aufgezeichnet. Wenn auf 0 gesetzt, werden alle Abfragen aufgezeichnet
slow_query_log_file=/mydata/data/hostname-slow.log Der Speicherort und Dateiname des langsamen Abfrageprotokolls
log_queries_not_using_indexes=OFF Dieses Element gibt an, dass Abfragen, die keine Indizes verwenden, auch im langsamen Abfrageprotokoll aufgezeichnet werden.
Fall
Jetzt schalte ich mein langsames MySQL-Abfrageprotokoll ein und setze die Zeit auf 0, um alles aufzuzeichnen SQL. Schauen wir uns dann an, wie das Slow-Query-Log aussieht.
Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument # Time: 2020-05-31T12:00:01.895700Z # User@Host: blog[blog] @ localhost [] Id: 3 # Query_time: 0.000170 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0 use blog; SET timestamp=1590926401; SET NAMES utf8mb4; # Time: 2020-05-31T12:00:01.902684Z # User@Host: blog[blog] @ localhost [] Id: 3 # Query_time: 0.006914 Lock_time: 0.006529 Rows_sent: 0 Rows_examined: 120 SET timestamp=1590926401; SELECT * FROM knowledge WHERE is_delete=0 AND star < 5 AND show_time <= 1590854400 ORDER BY show_time ASC LIMIT 1;
Wir schauen uns hauptsächlich die Zeile „Query_time“ an
Query_time: Abfragezeit
Lock_time: Sperrtabellenzeit
Rows_sent: Erhaltene Datenzeilen
Rows_examined: Gescannte Datenzeilen
Das obige ist der detaillierte Inhalt vonMySQL-Betriebs- und Wartungsprotokollverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!