MySQL speichert Informationen zu verschiedenen Optionen, die für eine Datenbank an verschiedenen Stellen festgelegt werden, abhängig von der Art der Option und ihrem Umfang. Hier ist eine Aufschlüsselung:
1. Optionen auf Datenbankebene (spezifische Einstellungen für eine Datenbank):
* `Information_schema.schemata` Tabelle: Diese Tabelle enthält allgemeine Informationen zu jeder Datenbank (Schema), einschließlich:
* `Default_character_set_name`:Das Standardzeichen für die Datenbank.
* `Default_collation_name`:Die Standardkollation für die Datenbank.
* `show Database` Anweisung erstellen: In dieser Anweisung wird die SQL -Anweisung angezeigt, die zum Erstellen der Datenbank verwendet wurde, einschließlich der zum Erstellungszeit festgelegten spezifischen Optionen. Zum Beispiel:
`` `SQL
Zeigen Sie die Datenbank erstellen your_database_name;
`` `
Die Ausgabe sieht ungefähr aus:
`` `
Datenbank erstellen `your_database_name` / *! 40100 Standard Zeichensatz UTF8MB4 COLLATE UTF8MB4_UNICODE_CI * /
`` `
Dies zeigt den Zeichensatz und die Kollation, die explizit festgelegt (oder standardmäßig). Es wird nicht jede mögliche Einstellung angezeigt, ist jedoch entscheidend, um die anfängliche Konfiguration zu verstehen.
* `Variablen wie" Anweisung anzeigen: Sie können dies verwenden, um globale und Sitzungsvariablen anzuzeigen, die sich indirekt auf eine Datenbank auswirken können. Während nicht direkt datenbankspezifisch sind, können einige Variablen, die sich auf Zeichensätze, Speichermotoren usw. beziehen, Auswirkungen auf das Verhalten der Datenbank haben.
`` `SQL
Zeigen Sie Variablen wie 'Charakter_Set%';
Zeigen Sie Variablen wie 'Collation%';
`` `
2. Optionen auf Tabellenebene (Einstellungen für eine Tabelle in einer Datenbank spezifisch):
* `Information_schema.tables` Tabelle: Diese Tabelle enthält allgemeine Informationen zu Tabellen, einschließlich:
* `Table_collation`:Die Zusammenstellung der Tabelle.
* `Motor`:Die von der Tabelle verwendete Speichermotor (z. B. InnoDB, MyISAM).
* `Table_comment`:Jeder Kommentar, der der Tabelle zugeordnet ist.
* `show table" Anweisung erstellen: Dies ist der direkteste Weg, um alle Optionen für eine bestimmte Tabelle festzulegen:
`` `SQL
Zeigen Sie die Tabelle erstellen Sie your_table_name;
`` `
Die Ausgabe zeigt die vollständige Anweisung "Create Table" an, einschließlich:
* Spalten und deren Datentypen.
* Indizes (Primärschlüssel, Fremdschlüssel, eindeutige Indizes usw.).
* Einschränkungen (z. B. "nicht null", "default" -Werte).
* Speichermotor.
* Reihenformat (für MyISAM).
* Zeichensatz und Kollektion (wenn explizit auf der Tabellenebene festgelegt wird, überschreiben Sie die Datenbank -Standardeinstellung).
* Tabellenkommentare.
* Partitionierungsinformationen (wenn die Tabelle partitioniert ist).
* Auto-Inkrementwert.
* `Information_schema.Columns` Tabelle: Diese Tabelle enthält Informationen zu jeder Spalte in einer Tabelle, einschließlich:
* `Column_default`:Der Standardwert für die Spalte.
* `Is_nullable`:ob die Spalte" null "-Werte enthalten kann.
* `Data_type`:Der Datentyp der Spalte (z. B.` int`, `varchar`).
* `Charakter_set_name`:Das Zeichensatz für die Spalte (wenn es sich um einen String -Typ handelt).
* `Collation_name`:Die Kollation für die Spalte (wenn es sich um einen String -Typ handelt).
* `Column_comment`:Jeder Kommentar, der der Spalte zugeordnet ist.
* `Information_schema.key_column_usage` Tabelle: Diese Tabelle enthält Informationen zu ausländischen Schlüsselbeziehungen.
* `Information_schema.Statistics` Tabelle: Diese Tabelle enthält Informationen zu Indizes für Tabellen.
3. Optionen auf Serverebene (globale Einstellungen):
* Konfigurationsdateien (my.cnf/my.ini): Diese Dateien sind der primäre Speicherort für die Konfiguration des MySQL -Servers. Sie enthalten Einstellungen, die für alle Datenbanken und Tabellen auf dem Server gelten. Wichtige Einstellungen sind:
* `Character-set-server`:Der Standardzeichen für den Server.
* `collation-server`:Die Standardkollektion für den Server.
* `innoDb_buffer_pool_size
* `max_connections`:Die maximale Anzahl der zulässigen Verbindungen.
* `
* Befehlszeilenoptionen: Beim Starten des MySQL-Servers können Sie Befehlszeilenoptionen übergeben, die Einstellungen in den Konfigurationsdateien überschreiben.
* `Globale Variablen anzeigen" Aussage: Diese Aussage zeigt alle globalen Variablen und deren aktuelle Werte an. Dies ist eine entscheidende Möglichkeit, die aktiven Servereinstellungen anzuzeigen. Zum Beispiel:
`` `SQL
Globale Variablen zeigen;
Zeigen Sie globale Variablen wie 'innoDB_%'; -InnoDB-verwandte Variablen zeigen
`` `
* `Global Status` Statement: Diese Anweisung zeigt die Statusvariablen des Servers, die Informationen zu Leistung, Verbindungen und anderen Serveraktivitäten enthalten.
4. Optionen auf Sitzungsebene (Client-Verbindungseinstellungen):
* `Sitzungsvariablen anzeigen" Anweisung: Diese Anweisung zeigt die Sitzungsspezifischen Variablen für die aktuelle Clientverbindung an. Diese Variablen können globale Variablen für die Dauer der Sitzung überschreiben.
`` `SQL
Sitzungsvariablen anzeigen;
Sitzungsvariablen wie 'Charakter_Set%' anzeigen;
`` `
* `set` Anweisung: Sie können die Anweisung "set" verwenden, um Sitzungsvariablen zu ändern.
`` `SQL
Setzen Sie Zeichen_Set_Client ='utf8mb4';
`` `
Zusammenfassend:
* Verwenden Sie "Database create create", um Erstellungsoptionen auf Datenbankebene anzuzeigen.
* Verwenden Sie `show Create table`, um Erstellungsoptionen auf Tabellenebene (und alles an der Struktur einer Tabelle) anzuzeigen.
* Verwenden Sie `Information_Schema` -Tabellen für strukturierte Metadaten zu Datenbanken, Tabellen und Spalten.
* Verwenden Sie "Globale Variablen anzeigen", um aktive serverweite Einstellungen anzuzeigen.
* Verwenden Sie `Session -Variablen anzeigen, um Einstellungen zu sehen, die für Ihre aktuelle Verbindung spezifisch sind.
* Überprüfen Sie die MySQL -Konfigurationsdateien (my.cnf/my.ini) auf die Standardservereinstellungen.
Das Verständnis, wo diese Optionen gespeichert sind und wie sie interagieren (globale vs. Sitzung vs. Datenbank vs. Tabelle), ist entscheidend für die Verwaltung und Fehlerbehebung bei Ihren MySQL -Datenbanken. Denken Sie auch daran, dass die verfügbaren Optionen und ihre Standardwerte je nach Verwendung von MySQL -Version variieren können.