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

vue cli3 implementiert die Schritte der Verpackung nach Umgebung

Das mit CLI3 erstellte Vue-Projekt wird als Nullk...

Mehrere gängige Methoden zum Senden von Anfragen mit Axios in React

Inhaltsverzeichnis Installieren und Einführen von...

Mehrere Techniken zum Abspielen von Sounds mit CSS

CSS ist der Bereich von Stil, Layout und Präsenta...

Einige Möglichkeiten zum Eliminieren doppelter Zeilen in MySQL

SQL-Anweisung /* Einige Methoden zum Eliminieren ...

So teilen Sie Daten in MySQL-Tabellen und -Datenbanken auf

Inhaltsverzeichnis 1. Vertikales (längsseitiges) ...

So legen Sie die Anzahl der MySQL-Verbindungen fest und ermitteln sie

Holen Sie sich die Anzahl der Verbindungen --- Ho...

Implementierung einer Suchfeldfunktion mit Suchsymbol basierend auf HTML-CSS

Vorwort Ich möchte Ihnen zeigen, wie Sie ein Such...

Sortierung und Paginierung von MySQL-Abfragen

Überblick Da wir die Daten normalerweise nicht di...

Detailliertes Tutorial zur Installation und Deinstallation von MySql

In diesem Artikel finden Sie das Tutorial zur Ins...

Detailliertes Tutorial zum PyCharm- und SSH-Remote-Access-Server-Docker

Hintergrund: Einige Experimente müssen auf dem Se...