Detaillierte Erläuterung der globalen Parameterpersistenz in den neuen Funktionen von MySQL 8

Detaillierte Erläuterung der globalen Parameterpersistenz in den neuen Funktionen von MySQL 8

Vorwort

Seit der Veröffentlichung der ersten offiziellen Version von MySQL 8.0.11 im Jahr 2018 wurde die MySQL-Version auf 8.0.26 aktualisiert. Im Vergleich zur stabilen Version 5.7 ist die Leistungsverbesserung von 8.0 unbestreitbar!

Da immer mehr Unternehmen MySQL Version 8.0 verwenden, ist dies für Datenbankadministratoren eine Herausforderung und eine Chance zugleich. 💪🏻

In diesem Artikel werden hauptsächlich die neuen Funktionen von MySQL 8.0 erläutert: globale Parameterpersistenz

Persistenz globaler Parameter

MySQL 8.0 unterstützt die Online-Änderung globaler Parameter und Persistenz. Durch Hinzufügen des Schlüsselworts PERSIST können die geänderten Parameter in einer neuen Konfigurationsdatei (mysqld-auto.cnf) persistent gespeichert werden. Wenn Sie MySQL neu starten, können Sie die neuesten Konfigurationsparameter aus der Konfigurationsdatei abrufen!

Entsprechendes Arbeitsprotokoll [WL#8688]: dev.mysql.com/worklog/tas…

Um diese Funktion zu aktivieren, verwenden Sie die spezielle Syntax SET PERSIST, um alle dynamisch änderbaren globalen Variablen festzulegen!

SETZEN SIE PERSISTENZ

Die Anweisung kann den Wert der Variablen im Speicher ändern und den geänderten Wert in mysqld-auto.cnf im Datenverzeichnis schreiben.

SETZEN SIE PERSIST_ONLY

Die Anweisung ändert den Wert der Variablen im Speicher nicht, sondern schreibt den geänderten Wert lediglich in mysqld-auto.cnf im Datenverzeichnis.

Nehmen Sie den Parameter max_connections als Beispiel:

mysql> wähle * aus performance_schema.persisted_variables;
Leerer Satz (0,00 Sek.)

mysql> Variablen wie „%max_connections%“ anzeigen;
+------------------------+----------+
| Variablenname | Wert |
+------------------------+----------+
| max_Verbindungen | 151 |
|mysqlx_max_connections | 100 |
+------------------------+----------+
2 Zeilen im Satz (0,00 Sek.)

mysql> setze persistent max_connections=300;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> wähle * aus performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLENNAME | VARIABLENWERT |
+-----------------+----------------+
| max_Verbindungen | 300 |
+-----------------+----------------+
1 Zeile im Satz (0,00 Sek.)

Das System generiert eine mysqld-auto.cnf-Datei im JSON-Format im Datenverzeichnis. Das Format ist wie folgt. Wenn my.cnf und mysqld-auto.cnf gleichzeitig vorhanden sind, hat letztere eine höhere Priorität.

{
    "Version": 1, 
    "mysql_server": {
        "max_connections": {
            "Wert": "300", 
            "Metadaten": {
                "Zeitstempel": 1632575065787609, 
                "Benutzer": "root", 
                "Host": "localhost"
            }
        }
    }
}

📢 Hinweis: Auch wenn Sie den Konfigurations-Wert über SET PERSIST ändern und es keine Änderung gibt, wird er in die Datei mysqld-auto.cnf geschrieben. Sie können den ursprünglichen Standardwert jedoch wiederherstellen, indem Sie ihn auf den STANDARD-Wert setzen!

Wenn Sie den Parameter max_connections auf seinen ursprünglichen Standardwert zurücksetzen möchten, führen Sie einfach Folgendes aus:

mysql> persistente max_connections=DEFAULT festlegen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> wähle * aus performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLENNAME | VARIABLENWERT |
+-----------------+----------------+
| max_Verbindungen | 151 |
+-----------------+----------------+
1 Zeile im Satz (0,00 Sek.)

Wenn Sie alle globalen persistenten Parameter entfernen möchten, führen Sie einfach Folgendes aus:

mysql> ZURÜCKSETZEN PERSIST;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> wähle * aus performance_schema.persisted_variables;
Leerer Satz (0,00 Sek.)

Natürlich können Sie auch die Datei mysqld-auto.cnf löschen und MySQL neu starten!

Abschließende Gedanken

Hauptcode:

Verpflichten Sie f2bc0f89b7f94cc8fe963d08157413a01d14d994

Haupteingabefunktion (8.0.0):

Die meisten Schnittstellenfunktionen sind in der Datei sql/persisted_variable.cc definiert:
Lädt den Inhalt von mysqld-auto.cnf beim Start: Persisted_variables_cache::load_persist_file(); Analysiert die Gültigkeit von JSON und speichert es im Speicher, um die aus der Datei gelesene Konfiguration festzulegen: Persisted_variables_cache::set_persist_options

Wenn der Befehl SET PERSIST ausgeführt wird, wird Persisted_variables_cache::set_variable aufgerufen, um den im Speicher gespeicherten Wert zu aktualisieren und in die Datei mysqld-auto.cnf zu schreiben: Persisted_variables_cache::flush_to_file

Zusammenfassen

Dies ist das Ende dieses Artikels über die neue Funktion von MySQL 8: globale Parameterpersistenz. Weitere Informationen zur globalen Parameterpersistenz von MySQL 8 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Referenzdokumente:

  • mysqlserverteam.com/mysql-8-0-p…
  • dev.mysql.com/worklog/tas…
  • bugs.mysql.com/bug.php?id=…
Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der neuen relationalen Datenbankfunktionen in MySQL 8.0
  • Eine kurze Diskussion über die Fallstricke und Lösungen der neuen Features von MySQL 8.0 (Zusammenfassung)
  • Neue Funktionen von MySQL 8: So ändern Sie persistente globale Variablen
  • Neue Funktionen in MySQL 8: Details zu absteigenden Indizes
  • Die Rolle der neuen Feature-Window-Funktionen von MySQL 8

<<:  Avue-CRUD-Implementierungsbeispiel für einen komplexen dynamischen Header auf mehreren Ebenen

>>:  Leitfaden zum Schreiben von HTML-Code

Artikel empfehlen

Implementierung des Tomcat-Bereitstellungsprojekts und Integration mit IDEA

Inhaltsverzeichnis 3 Möglichkeiten zum Bereitstel...

Sequentielles und zufälliges Schreiben auf Linux-Festplatten

1. Einleitung ● Zufälliges Schreiben führt dazu, ...

Detaillierte Erklärung des Hintergrund-Positionsprozentsatzprinzips

Als ich heute jemandem beim Anpassen des Codes ha...

Architektur und Komponentenbeschreibung der privaten Docker-Bibliothek Harbor

In diesem Artikel wird die Zusammensetzung der Ha...

Zusammenfassung und Analyse häufig verwendeter Docker-Befehle und Beispiele

Inhalt 1. Container-Lebenszyklusmanagement (1) Do...

Tutorial zu HTML-Tabellen-Tags (34): Zeilenspannen-Attribut ROWSPAN

In einer komplexen Tabellenstruktur erstrecken si...

Lösung für den Fehler beim Kompilieren des LVGL-Emulators unter Linux

Inhaltsverzeichnis 1. Fehlerphänomen 2. Fehlerana...

MySQL-Grundlagen - Kurzanleitung - Wissenszusammenfassung (mit Mindmap)

Inhaltsverzeichnis Vorwort 1. Grundkenntnisse der...

Vertikales und horizontales Aufteilen von MySQL-Tabellen

Vertikale Teilung Vertikale Aufteilung bezieht si...

Detaillierte Erklärung, wie Sie alle untergeordneten Elemente mit CSS auswählen

Wie wähle ich mit CSS rekursiv alle untergeordnet...

Beispielcode für CSS-Flex-Layout mit automatischem Zeilenumbruch

Um einen Flex-Container zu erstellen, fügen Sie e...