EinführungDieser Artikel fasst die Protokolle in MySQL zusammen und stellt sie kurz vor, ohne zu sehr ins Detail zu gehen. Der Hauptzweck besteht darin, ein systematisches Verständnis der Protokolldateien in MySQL zu erlangen. ProtokollklassifizierungZu den Protokolldateien in MySQL zählen Konfigurationsdateien, Fehlerprotokolldateien, Binärdateien (Binärprotokoll), Slow-Query-Protokolle (Slow-Query-Log), allgemeine Protokolle (Genera-Log), Prüfprotokolle (Audit-Log), Datenbankdateien und Datentabellendateien, Speichermoduldateien, Relay-Protokolle (Relay-Log), Prozessdateien (PID) und Socket-Dateien. Parameterdatei Die Parameterdatei ist die Konfigurationsdatei in MySQL, die Datei my.cnf in Linux und die Datei my.ini in Windows. Der Dateiinhalt ist hauptsächlich in zwei Module unterteilt: Server und Client. Das Servermodul konfiguriert MySQL-Dienstinformationen, beispielsweise das Protokoll für langsame Abfragen. Das Clientmodul konfiguriert MySQL-Client-Verbindungsinformationen, beispielsweise die Portnummer der Clientverbindung. [Kunde] Port = 3306 Standardzeichensatz = utf8mb4 [mysqld] Benutzer = MySQL Port = 3306 sql_mode = "" Standard-Speicher-Engine = InnoDB Standardauthentifizierungs-Plugin = MySQL_native_Password Zeichensatzserver = utf8mb4 Sortierserver = utf8mb4_unicode_ci init_connect = "Namen festlegen utf8mb4" langsames_Abfrageprotokoll lange_Abfragezeit = 3 langsame Abfrage-Logdatei = /var/lib/mysql/mysql.slow.log log-Fehler = /var/lib/mysql/mysql.error.log Standardzeitzone = '+8:00' Fehlerprotokolldateien Die Fehlerprotokolldatei zeichnet die Protokollinformationen von MySQL vom Start, Betrieb und Herunterfahren auf. Beispiele hierfür sind Verbindungsfehler bei MySQL, Fehler beim Abfragebefehl, SQL-Ausführungsprozess usw. Es ist sehr hilfreich zum Auffinden von MySQL-Fehlern. Version: „5.7.28-log“ Socket: „/var/run/mysqld/mysqld.sock“ Port: 3306 MySQL Community Server (GPL) 2021-04-17T21:23:00.865868Z 3 [Hinweis] Abgebrochene Verbindung 3 zu db: ‚exam_wechat‘ Benutzer: ‚root‘ Host: ‚172.18.0.1‘ (Timeout beim Lesen der Kommunikationspakete aufgetreten) 2021-04-17T21:23:00.865969Z 2 [Hinweis] Abgebrochene Verbindung 2 zu db: ‚exam_wechat‘ Benutzer: ‚root‘ Host: ‚172.18.0.1‘ (Timeout beim Lesen der Kommunikationspakete aufgetreten) 2021-04-19T22:33:24.137143Z 0 [Hinweis] InnoDB: page_cleaner: 1000 ms, beabsichtigte Schleife dauerte 18415 ms. Die Einstellungen sind möglicherweise nicht optimal. (flushed=0 und evicted=0, während der Zeit.) 2021-04-20T07:03:21.765208Z 79 [Hinweis] Zugriff für Benutzer ‚root‘@‚172.18.0.1‘ verweigert (mit Passwort: NEIN) 2021-04-20T07:03:23.825044Z 81 [Hinweis] Abgebrochene Verbindung 81 zur Datenbank: „nicht verbunden“ Benutzer: „root“ Host: „172.18.0.1“ (Beim Lesen der Kommunikationspakete ist ein Fehler aufgetreten) 2021-04-20T07:14:25.033983Z 82 [Hinweis] Zugriff für Benutzer ‚root‘@‚172.18.0.1‘ verweigert (mit Passwort: NEIN) 2021-04-20T07:14:27.442608Z 84 [Hinweis] Abgebrochene Verbindung 84 zu db: „nicht verbunden“ Benutzer: „root“ Host: „172.18.0.1“ (Beim Lesen der Kommunikationspakete ist ein Fehler aufgetreten) 2021-04-20T07:27:13.971644Z 83 [Hinweis] Abgebrochene Verbindung 83 zu db: „nicht verbunden“ Benutzer: „root“ Host: „172.18.0.1“ (Timeout beim Lesen der Kommunikationspakete aufgetreten) 2021-04-20T07:41:02.916249Z 85 [Hinweis] Abgebrochene Verbindung 85 zu db: „nicht verbunden“ Benutzer: „root“ Host: „172.18.0.1“ (Timeout beim Lesen der Kommunikationspakete aufgetreten) So starten Sie die Fehlerprotokollierung. Konfigurieren Sie einfach die Absicht log_error in der Konfigurationsdatei in MySQL. mysql [email protected]:(keine)> Variablen wie „%log_error%“ anzeigen; +---------------------+--------------------------------+ | Variablenname | Wert | +---------------------+--------------------------------+ | binlog_error_action | ABORT_SERVER | | log_fehler | /var/lib/mysql/mysql.error.log | | log_error_verbosity | 3 | +---------------------+--------------------------------+ 3 Reihen im Set Zeit: 0,010 s Vollständige ProtokolldateiDie vollständige Protokolldatei zeichnet alle SQL-Vorgangsprotokolle von MySQL auf. Beispielsweise werden Vorgänge wie Hinzufügen, Löschen, Ändern und Prüfen protokolliert. mmysql [email protected]:(none)> Variablen wie „%general%“ anzeigen; Verbindung wird erneut hergestellt... +------------------+---------------------------------+ | Variablenname | Wert | +------------------+---------------------------------+ | general_log | AUS | | allgemeine_Protokolldatei | /var/lib/mysql/7fdc5f723ff9.log | +------------------+---------------------------------+ Das Konfigurationselement hat drei Werte: Tabelle, keine und Datei. Wenn Sie „file“ konfigurieren, werden die Daten in der Protokolldatei aufgezeichnet. Wenn Sie „none“ konfigurieren, werden die Daten nicht aufgezeichnet. Wenn Sie „table“ konfigurieren, wird in der MySQL-Standarddatenbank eine Tabelle (genannt „general-log“) erstellt, um die Daten aufzuzeichnen. Es wird nicht empfohlen, diese Option zu aktivieren. Es werden zu viele Protokolldateien aufgezeichnet, was nicht nur die Leistung beeinträchtigt, sondern auch zu viel ungültigen Speicherplatz beansprucht. # Protokolldateiformat mysqld, Version: 5.7.28-log (MySQL Community Server (GPL)). gestartet mit: TCP-Port: 3306 Unix-Socket: /var/run/mysqld/mysqld.sock Zeit-ID-Befehlsargument 2021-04-20T09:16:48.572888Z 88 Verbinden Sie [email protected] über TCP/IP 2021-04-20T09:16:48.574591Z 88 Verbindungszugriff für Benutzer „root“@„172.18.0.1“ verweigert (mit Passwort: NEIN) 2021-04-20T09:16:50.325379Z 89 Verbinden Sie [email protected] über TCP/IP 2021-04-20T09:16:50.329894Z 89 Abfrage select connection_id() 2021-04-20T09:16:50.335222Z 89 Abfrage SELECT @@VERSION 2021-04-20T09:16:50.339432Z 90 Verbinden Sie [email protected] über TCP/IP 2021-04-20T09:16:50.339621Z 89 Abfrage SELECT @@VERSION_COMMENT 2021-04-20T09:16:50.343525Z 90 Abfrage „select connection_id()“ 2021-04-20T09:16:50.347115Z 90 Abfrage DATENBANKEN ANZEIGEN 2021-04-20T09:16:50.380236Z 90 Abfrage „select TABLE_NAME, COLUMN_NAME“ aus information_schema.columns wobei table_schema = „Keines“ Sortieren nach Tabellenname,Ordinalposition 2021-04-20T09:16:50.391019Z 90 Abfrage SELECT CONCAT("'", Benutzer, "'@'", Host,"'") FROM mysql.user 2021-04-20T09:16:50.415062Z 90 Abfrage SELECT ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES Wobei ROUTINE_TYPE = "FUNKTION" und ROUTINE_SCHEMA = "Keine" 2021-04-20T09:16:50.432015Z 90 Abfrage SELECT Name aus mysql.help_topic WHERE Name wie "SHOW %" 2021-04-20T09:16:52.572608Z 89 Abfrage zeigt Variablen wie „%general%“ an 2021-04-20T09:17:13.532046Z 89 Abfrage zeigt Variablen wie „%general%“ an Langsames AbfrageprotokollDas Protokoll langsamer Abfragen ist eine Protokolldatei, die die Geschwindigkeit von SQL-Abfragen aufzeichnet. Wenn die Abfragezeit einer SQL-Anweisung einen festen Schwellenwert überschreitet, wird diese SQL-Anweisung als langsame Abfrage-SQL-Anweisung definiert und in der Protokolldatei für langsame Abfragen aufgezeichnet. Die Konfiguration einer langsamen Abfrage umfasst hauptsächlich die folgenden drei Parameter. Gibt an, ob langsame Abfragen und die Protokolldatei für langsame Abfragen aktiviert werden sollen. mysql [email protected]:(keine)> Variablen wie „%slow%“ anzeigen; +-----------------------------+----------------------------------+ | Variablenname | Wert | +-----------------------------+----------------------------------+ | slow_query_log | EIN | | slow_query_log_datei | /var/lib/mysql/mysql.slow.log | +-----------------------------+----------------------------------+ 5 Reihen im Set Zeit: 0,014 s Schwelle für langsame Abfragezeit. mysql [email protected]:(keine)> Variablen wie „%long_query_time%“ anzeigen; +-----------------+----------+ | Variablenname | Wert | +-----------------+----------+ | lange Abfragezeit | 3.000000 | +-----------------+----------+ 1 Reihe im Set Zeit: 0,013 Binäre ProtokolldateienDie binäre Protokolldatei wird zum Aufzeichnen von MySQL-DML-Anweisungen verwendet. Sie zeichnet den physischen Protokollinhalt nach dem Vorgang auf, zeichnet jedoch keine Select-, Show- und anderen Anweisungen in MySQL auf. Die Hauptfunktionen von Binärprotokolldateien sind folgende: Bei der Master-Slave-Replikation sendet der Master-Server das physische Protokoll in der Binärdatei an den Slave-Server und der Slave-Server schreibt das Protokoll in sich selbst. Wird zur Datenwiederherstellung verwendet. Rufen Sie basierend auf dem physischen Protokoll das Betriebsprotokoll ab, bevor Daten verloren gehen. Es kann über die folgenden Parameter konfiguriert werden: mysql [email protected]:(keine)> Variablen wie „%log_bin%“ anzeigen; Verbindung wird wiederhergestellt... +---------------------------------+--------------------------------+ | Variablenname | Wert | +---------------------------------+--------------------------------+ | log_bin | EIN | | log_bin_basename | /var/lib/mysql/mysql-bin | | log_bin_index | /var/lib/mysql/mysql-bin.index | +---------------------------------+--------------------------------+ 6 Reihen im Set Zeit: 0,015 s log_bin gibt an, ob binäre Protokolldateien geöffnet werden sollen, log_bin_basename gibt das gespeicherte Verzeichnis und Protokolldateipräfix an und log_bin_index gibt den Protokolldateiindex (Protokolldateiname) an. Wenn für die Protokolldatei kein Dateiname angegeben ist, wird standardmäßig der lokale Name verwendet. Liste der Protokolldateien. -rw-r----- 1 MySQL-Wurzel 154 12. April 09:31 mysql-bin.000041 -rw-r----- 1 MySQL-Wurzel 154 12. April 19:45 mysql-bin.000042 -rw-r----- 1 MySQL-Wurzel 1459325 17. April 20:26 mysql-bin.000043 -rw-r----- 1 mysql mysql 24576 17. April 22:18 mysql-bin.000044 # cat mysql-bin.index ./mysql-bin.000001 ./mysql-bin.000002 ./mysql-bin.000003 ./mysql-bin.000004 ./mysql-bin.000005 ./mysql-bin.000006 ÜberwachungsprotokollPrüfprotokolle werden verwendet, um MySQL-Netzwerkaktivitäten aufzuzeichnen und Statistiken, Analysen und Berichte zu MySQL-Betriebsaufzeichnungen zu erstellen. Eine Protokolldatei, die Informationen zur MySQL-Sicherheitsüberwachung aufzeichnet. MySQL selbst enthält diese Funktion nicht und auf der offiziellen MySQL-Website wird für diese Funktion auch eine Gebühr erhoben. Eine konkrete Demonstration hierzu erfolgt hier nicht. Relay-ProtokollDas Relay-Protokoll spielt eine wichtige Rolle bei der MySQL-Master-Slave-Replikation auf dem Slave-Server. Wenn der Master-Server eine Binärdatei an den Slave-Server sendet, führt der Slave-Server sie nicht sofort aus, sondern legt sie in einer Protokolldatei eines bestimmten Typs ab. Anschließend startet der Slave-Server einen SQL-Thread, um den Inhalt der Relay-Protokolldatei zu lesen und in seine eigenen Daten zu schreiben. PID-DateiPID ist die Prozess-ID einer MySQL-Instanz. MySQL ist ein Einzelprozessdienst. Wenn Sie eine MySQL-Instanz starten, wird eine PID-Datei erstellt. Socket-DateiSocket ist auch eine Möglichkeit der MySQL-Kommunikation. Es gibt zwei Möglichkeiten der MySQL-Kommunikation: TCP und Socket. TCP verwendet Netzwerkkommunikation und kann Dienste auf jedem zugänglichen Server bereitstellen. Socket ist eine Methode zur Dateikommunikation und muss sich auf demselben Server befinden. # TCP-Modus mysql -hxxxx -pxxxx -uxxxx -Pxxx mysql -uxxxx -pxxxx -s /Pfad/Socket Datenbank und Tabelle Die Datenbank- und Tabellenwerte sind die Tabellenstrukturdateien, Datendateien und Indexdateien in MySQL. -rw-r----- 1 MySQL-Wurzel 13650 13. April 09:46 wechat_user.frm -rw-r----- 1 mysql mysql 98304 17. April 13:43 wechat_user.ibd Datentabellenstruktur der MyISAM-Speicher-Engine -rw-r----- 1 mysql mysql 0 20. April 17:53 Benutzer.MYD -rw-r----- 1 mysql mysql 1024 20. April 17:53 Benutzer.MYI -rw-r----- 1 root root 8586 20. April 17:53 Benutzer.frm SpeichermoduldateienVerschiedene Speicher-Engines haben unterschiedliche Implementierungen. Die InnoDB-Speicher-Engine ist in zwei Arten von Protokolldateien unterteilt: Redolog und Undolog. Dies ist das Ende dieses Artikels über eine umfassende Bestandsaufnahme wichtiger Protokolldateien in MySQL. Weitere relevante Inhalte zu MySQL-Protokolldateien finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Sortierfunktion für HTML-Tabellen per Mausklick
>>: Beispielcode zur Realisierung eines Buchseitenumblättereffekts mit CSS3
Inhaltsverzeichnis Überblick Globale Hook-Funktio...
Eingabe-Subsystem-Framework Das Linux-Eingabesubs...
HTML-Tag: hochgestellt In HTML definiert das <s...
Lösung: Ändern Sie die Datei setup.py direkt in d...
Wenn wir den Inhalt einer archivierten oder kompr...
So hosten Sie zwei oder mehr Sites auf dem belieb...
Vorne geschrieben Es gibt zwei Möglichkeiten, MyS...
Sollte dieser Artikel Fehler enthalten oder du An...
CSS-Stile html,Text{ Breite: 100 %; Höhe: 100%; R...
Eines Tages stellte ich fest, dass die Ausführung...
Als technischer Neuling zeichne ich den Vorgang d...
Vorwort MySQL unterstützt viele Arten von Tabelle...
Inhaltsverzeichnis Replikationsarchitektur mit ei...
Heute möchte ein Kunde eine Anzeige schalten und d...
In diesem Artikelbeispiel wird der spezifische Co...