Detaillierte Erläuterung der MySQL-Startoptionen und Beispiele für Systemvariablen

Detaillierte Erläuterung der MySQL-Startoptionen und Beispiele für Systemvariablen

Dieser Artikel beschreibt die MySQL-Startoptionen und Systemvariablen. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

MySQL-Konfigurationsinformationen können auf zwei Arten implementiert werden. Eine davon ist die Befehlszeilenform, die nach dem Starten des MySQL-Dienstes relevante Konfigurationsparameter eingibt. Diese Methode wird nach einem Neustart von MySQL ungültig. Eine andere Möglichkeit besteht darin, in die Konfigurationsdatei zu schreiben, z. B. my.cnf. Dies wird wirksam, wenn Sie den MySQL-Dienst starten oder neu starten. Diese Methode ist dauerhaft.

Startoptionen

Befehlszeile

Beim Starten des MySQL-Dienstbefehls bringen Sie die Konfigurationsparameter

Informationen zur Startmethode finden Sie in diesem Artikel: MySQL-Start- und Verbindungsmethode

Befehlsformat:
Startbefehl --Startup-Option 1 [= Wert 1] --Startup-Option 2 [= Wert 2] ... --Startup-Option n [= Wert n]
Zum Beispiel:
mysqld --default-storage-engine=MyISAM //Standard-Speicher-Engine festlegen
Falsches Beispiel:
mysqld --default-storage-engine = MyISAM //Standard-Speicher-Engine festlegen Grund:
Da zwischen dem Gleichheitszeichen des Startelements und dem Wert kein Leerzeichen stehen darf

Lange und kurze Formen von Parametern

Konfigurationsparameter haben eine lange und eine kurze Form. Einige von ihnen haben dieselbe Funktion, werden aber unterschiedlich geschrieben.
--host => -h //Host--Port => -P //Port--Benutzer => -u //Benutzer--Passwort => -p //Passwort--Version => -V //Version......
Beispiel:
mysqld --port=3306
mysqld -P3306
mysqld -P 3306
Beachten:
Das Passwort darf keine Leerzeichen enthalten mysqld -proot

Konfigurationsdateien

Der Speicherort der Konfigurationsdatei my.cnf kann der folgende sein. Wenn beim Starten des MySQL-Dienstes keine Konfigurationsdatei angegeben ist, wird sie an den folgenden Speicherorten gesucht, gelesen und initialisiert.
* /etc/meine.cnf 
* /etc/mysql/my.cnf
* defaults-extra-file //Angegebener zusätzlicher Konfigurationsdateipfad* SYSCONFDIR/my.cnf //Cmake-Kompilierungs- und Installationssituation* $MYSQL_HOME/my.cnf //Umgebungsvariablen festlegen, Standardinstallationspfad* ~/.my.cnf //Benutzerspezifische Optionen, Home-Verzeichnis* ~/.mylogin.cnf //Benutzerspezifische Optionen für den Anmeldepfad (nur Client), geändert durch mysql_config_editor, keine reine Datei

Beachten

1. Den in der Konfigurationsdatei angegebenen Startoptionen darf kein -- vorangestellt werden. Pro Zeile darf nur eine Option angegeben werden. Um = herum dürfen Leerzeichen stehen.
2. Wenn wir in mehreren Konfigurationsdateien dieselben Startoptionen festlegen, hat die letzte Konfigurationsdatei Vorrang.
3. Wenn sowohl in der Befehlszeile als auch in der Konfigurationsdatei dieselbe Startoption erscheint, hat die Startoption in der Befehlszeile Vorrang.
4. mysqld --defaults-file=/tmp/myconfig.txt
//Wenn das Programm startet, sucht es nur im Pfad /tmp/myconfig.txt nach Konfigurationsdateien. Wenn die Datei nicht existiert oder nicht darauf zugegriffen werden kann, tritt ein Fehler auf

Konfigurationsgruppe

Die Konfigurationsdatei kann die folgenden Gruppen haben: mysqld, mysqld_safe, mysql.server, mysql, mysqladmin, mysqldump und kann für verschiedene Gruppen konfiguriert werden

Inhaltsformat
[Server]
(Spezifische Startoptionen...)
[mysqld]
(Spezifische Startoptionen...)
[mysqld_safe]
(Spezifische Startoptionen...)
[Kunde]
(Spezifische Startoptionen...)
[mysql]
(Spezifische Startoptionen...)
[mysqladmin]
(Spezifische Startoptionen...)
Beispiel:
[mysqld]
pid-Datei = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
Datenverzeichnis = /var/lib/mysql
log-Fehler = /var/log/mysql/error.log
#Konfiguration optimieren wait_timeout=10
back_log=600
Schlüsselpuffergröße = 2048 M
Lesepuffergröße = 100 M
max_allowed_packet = 1000M
Thread-Stapel = 192 KB
Thread-Cache-Größe = 4
myisam-recover-options = BACKUP
max_Verbindungen = 4000
max_user_connections = 0
max_connect_errors = 65535
Open_files_limit = 10240
......

Beachten
1. Die Startoptionen unter der Gruppe [Server] gelten für alle Serverprogramme wie mysqld, mysqld_safe und mysql.server.
2. Die Startoptionen unter der Gruppe [client] gelten für alle Clientprogramme wie mysql, mysqladmin und mysqldump
3. Die Priorität mehrerer Gruppen in derselben Konfigurationsdatei basiert auf den Startoptionen in der letzten angezeigten Gruppe.

Systemvariablen

Das MySQL-Serverprogramm verwendet viele Variablen, die das Programmverhalten während des Betriebs beeinflussen. Sie werden als MySQL-Systemvariablen bezeichnet.

Zum Beispiel:
1. Die Anzahl der Clients, die gleichzeitig eine Verbindung herstellen dürfen, wird durch die Systemvariable max_connections angegeben
2. Die Standardspeicher-Engine der Tabelle wird durch die Systemvariable default_storage_engine dargestellt
3. Die Größe des Abfragecaches wird durch die Systemvariable query_cache_size dargestellt
......

Überprüfen

Format:
VARIABLEN ANZEIGEN [WIE übereinstimmendes Muster];
Zum Beispiel:
VARIABLEN WIE „default_storage_engine“ ANZEIGEN; 

aufstellen

Über die Starteinstellungen

Befehlszeileneinstellungen
mysqld --default-storage-engine=MyISAM --max-connections=10
Profileinstellungen
[mysqld]
Standard-Speicher-Engine = MyISAM
Max. Verbindungen = 10
......

Beachten:
Bei Startoptionen gilt: Wenn der Name der Startoption aus mehreren Wörtern besteht, können die Wörter mit einem Bindestrich - oder einem Unterstrich _ verbunden werden, die Wörter der entsprechenden Systemvariablen müssen jedoch mit einem Unterstrich _ verbunden werden (also beim Anzeigen über „show“ oder beim Einstellen über „set“).

Wird festgelegt, während das Serverprogramm ausgeführt wird

Das Coole an Systemvariablen ist, dass bei den meisten Systemvariablen die Werte dynamisch bei laufendem Server geändert werden können, ohne dass der Server angehalten und neu gestartet werden muss.

Systemvariablen haben jedoch globale und aktuelle Sitzungsbereich.

Umfang

GLOBAL: Globale Variablen, die den Gesamtbetrieb des Servers beeinflussen.
SESSION: Sitzungsvariablen, die den Betrieb einer Clientverbindung beeinflussen. (Alternativer Name: LOCAL)
Format:
1. SET [GLOBAL|SESSION] Systemvariablenname = Wert;
2. SET [@@(GLOBAL|SESSION).]var_name = XXX;
weltweit
Zum Beispiel:
1. SETZEN SIE GLOBAL default_storage_engine = InnoDB;
2. SET @@GLOBAL.default_storage_engine = InnoDB;
Sitzung
Zum Beispiel:
1. Setzen Sie die Sitzung auf default_storage_engine = InnoDB;
2. SET @@SESSION.default_storage_engine = InnoDB;
3. SET default_storage_engine = InnoDB; //Standardsitzung
Überprüfen
Format: SHOW [GLOBAL|SESSION] VARIABLES [LIKE passendes Muster];
1. SESSION-VARIABLEN WIE „default_storage_engine“ ANZEIGEN;
2. GLOBALE VARIABLEN WIE „default_storage_engine“ ANZEIGEN;
Beachten:
Wenn ein Client den Wert einer Systemvariablen im GLOBAL Bereich ändert, wirkt sich dies nicht auf den Wert der Systemvariablen im SESSION Bereich des aktuell verbundenen Clients aus, sondern nur auf den Wert der Systemvariablen im SESSION Bereich nachfolgender Clients.
Weitere Hinweise
Nicht alle Systemvariablen haben GLOBALE und SESSION-Bereiche.

* Einige Systemvariablen haben nur einen GLOBAL-Bereich, wie z. B. max_connections, das die maximale Anzahl von Client-Programmen angibt, die das Server-Programm gleichzeitig verbinden kann.
* Einige Systemvariablen haben nur den Gültigkeitsbereich SESSION, wie z. B. insert_id, das den Anfangswert einer Spalte beim Einfügen in eine Tabelle mit einer AUTO_INCREMENT-Spalte angibt.
* Einige Systemvariablen haben sowohl GLOBAL- als auch SESSION-Bereiche, wie z. B. die default_storage_engine, die wir zuvor verwendet haben, und tatsächlich sind die meisten Systemvariablen so

Einige Systemvariablen sind schreibgeschützt und können nicht festgelegt werden.

Beispielsweise gibt version die aktuelle MySQL-Version an. Unser Client kann den Wert nicht festlegen und ihn nur in der Anweisung SHOW VARIABLES anzeigen.

Beziehung zwischen Startoptionen und Systemvariablen
Startoptionen sind einige Parameter, die wir Programmierer beim Starten des Programms übergeben, während Systemvariablen Variablen sind, die das Laufverhalten des Serverprogramms beeinflussen.

* Die meisten Systemvariablen können als Startoptionen übergeben werden
* Einige Systemvariablen werden während der Programmausführung automatisch generiert und können nicht als Startoptionen festgelegt werden, z. B. auto_increment_offset, character_set_client usw.
* Einige Startoptionen sind keine Systemvariablen, wie z. B. defaults-file

Zustandsvariablen

Um uns zu helfen, die Funktionsweise des Serverprogramms besser zu verstehen, verwaltet das MySQL-Serverprogramm viele Variablen zum Ausführungsstatus des Programms, die als Statusvariablen bezeichnet werden.

Beispielsweise gibt Threads_connected an, wie viele Clients derzeit mit dem Server verbunden sind, und Handler_update gibt an, wie viele Zeilen aktualisiert wurden.

Da Statusvariablen zum Anzeigen des Ausführungsstatus des Serverprogramms verwendet werden, können ihre Werte nur vom Serverprogramm selbst festgelegt werden und nicht von uns Programmierern.

Überprüfen

Format:
SHOW [GLOBAL|SESSION] STATUS [LIKE matched_pattern];
Zum Beispiel:
STATUS ANZEIGEN WIE „Thread%“;

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • MySQL-Lösung für die Konfiguration mehrerer Instanzen
  • Einführung in die MySQL-Datenbank: Detaillierte Erläuterung der Konfigurationsmethode für mehrere Instanzen
  • Tutorial zur Installation und Konfiguration von MySQL 8.0
  • Konfigurationsprozess für selbststartende Dienste für einzelne Instanzen von MySQL5.7

<<:  Eine kurze Diskussion zur Verwendung von React.FC und React.Component

>>:  Vue realisiert den Fortschrittsbalken-Änderungseffekt

Artikel empfehlen

Beispiele für den Import und Export von MySQL-Tabellendaten

Dieser Artikel beschreibt die Import- und Exportv...

VUE implementiert Saugknopf an der Unterseite

In diesem Artikelbeispiel wird der spezifische Co...

CSS3 realisiert den grafischen Fallanimationseffekt

Sehen Sie zuerst den Effekt Implementierungscode ...

Detaillierte Erklärung der CocosCreator-Optimierung DrawCall

Inhaltsverzeichnis Vorwort Was ist DrawCall Welch...

So installieren Sie Docker unter Windows 10 Home Edition

Ich habe Docker kürzlich verwendet, um ein Projek...

So verwenden Sie JavaScript zum Implementieren von Sortieralgorithmen

Inhaltsverzeichnis Blasensortierung Auswahl Sorti...

Detailliertes Beispiel für die Verwendung einer asynchronen JS-Fetch-Anforderung

Inhaltsverzeichnis Asynchronität verstehen abrufe...

Detaillierte Schritte zur Dateisteuerungsverwaltung für Linux-Konten

Im Linux-System gibt es neben den verschiedenen, ...

Über Tomcat kombiniert mit Atomikos zur Implementierung von JTA

Vor Kurzem hat das Projekt die Umgebung gewechsel...