MySQL lagrar information om olika alternativ som är inställda för en databas på olika platser, beroende på typ av alternativ och dess omfattning. Här är en uppdelning:
1. Alternativ för databasnivå (inställningar specifika för en databas):
* `Information_schema.schemata` Tabell: Denna tabell innehåller allmän information om varje databas (schema), inklusive:
* `Standard_character_set_name`:Standardteckenuppsättningen för databasen.
* `Standard_Collation_Name`:Standardsamlingen för databasen.
* `Visa Create Database` Uttalande: Detta uttalande visar SQL -uttalandet som används för att skapa databasen, inklusive eventuella specifika alternativ som ställts in vid skapelsetiden. Till exempel:
`` `SQL
Visa skapa databas your_database_name;
`` `
Utgången kommer att se ut som:
`` `
Skapa databas `your_database_name` / *! 40100 Standardteckenuppsättning Utf8mb4 Collate UTF8MB4_UNICODE_CI * /
`` `
Detta visar karaktärsuppsättningen och samlingen som uttryckligen ställdes in (eller standard till). Det kommer inte att visa alla möjliga inställningar, men det är avgörande för att förstå den första konfigurationen.
* `visa variabler som` uttalande: Du kan använda detta för att se globala och sessionvariabler som indirekt kan påverka en databas. Även om det inte är databasspecifikt direkt, kan vissa variabler relaterade till teckenuppsättningar, lagringsmotorer etc. få konsekvenser för databasens beteende.
`` `SQL
Visa variabler som 'karaktär_set%';
Visa variabler som 'Collation%';
`` `
2. Tabellnivåalternativ (inställningar specifika för en tabell i en databas):
* `Information_schema.tables` Tabell: Denna tabell innehåller allmän information om tabeller, inklusive:
* `TABLE_COLLATION`:Tabellens samling.
* `MOTOR`:Lagringsmotorn som används av tabellen (t.ex. InnoDB, Myisam).
* `TABLE_COMMENT`:Varje kommentar som är associerad med tabellen.
* `Visa CREATE TABELL` uttalande: Detta är det mest direkta sättet att se alla alternativ som är inställda för en specifik tabell:
`` `SQL
Visa skapa tabell your_table_name;
`` `
Utgången visar hela uttalandet "Skapa tabell", inklusive:
* Kolumner och deras datatyper.
* Index (primärnyckel, utländska nycklar, unika index etc.).
* Begränsningar (t.ex. `inte null`," standard "-värden).
* Lagringsmotor.
* Radformat (för myisam).
* Teckenuppsättning och samling (om det uttryckligen ställs in på tabellnivån, åsidosätter databas standard).
* Tabellkommentarer.
* Partitioneringsinformation (om tabellen är uppdelad).
* Auto-inkrementvärde.
* `Information_schema.Columns` Tabell: Denna tabell innehåller information om varje kolumn i en tabell, inklusive:
* `Column_Default`:Standardvärdet för kolumnen.
* `IS_NULLABLE`:Huruvida kolumnen kan innehålla` noll 'värden.
* `Data_type`:datatypen för kolumnen (t.ex.` int`, `varchar`).
* `Character_set_Name`:Teckenuppsättningen för kolumnen (om det är en strängtyp).
* `Collation_name`:samlingen för kolumnen (om det är en strängtyp).
* `Column_Comment`:Varje kommentar som är associerad med kolumnen.
* `information_schema.key_column_usage` Tabell: Denna tabell ger information om utländska nyckelrelationer.
* `Information_schema.Statistics` Tabell: Denna tabell innehåller information om index på tabeller.
3. Alternativ på servernivå (globala inställningar):
* Konfigurationsfiler (my.cnf/my.ini): Dessa filer är den primära platsen för att konfigurera MySQL -servern. De innehåller inställningar som gäller för alla databaser och tabeller på servern. Viktiga inställningar inkluderar:
* `Character-Set-server`:Standardteckenuppsättningen för servern.
* `Collation-server`:Standardkollationen för servern.
* `innoDB_BUFFER_POOL_SIZE`:mängden minne som tilldelas InnoDB -buffertpoolen.
* `Max_connections`:Det maximala antalet tillåtna samtidiga anslutningar.
* `SQL_MODE`:Definierar SQL -lägena som påverkar hur servern hanterar frågor.
* kommandoradsalternativ: När du startar MySQL-servern kan du skicka kommandoradsalternativ som åsidosätter inställningar i konfigurationsfilerna.
* `Visa globala variabler" Uttalande: Detta uttalande visar alla globala variabler och deras nuvarande värden. Detta är ett avgörande sätt att se de aktiva serverinställningarna. Till exempel:
`` `SQL
Visa globala variabler;
Visa globala variabler som 'InnoDB_%'; -Visa innoDB-relaterade variabler
`` `
* `visa global status` uttalande: Detta uttalande visar serverns statusvariabler, som ger information om prestanda, anslutningar och andra serveraktiviteter.
4. Sessionnivåalternativ (klientanslutningsinställningar):
* `Visa sessionvariabler" Uttalande: Detta uttalande visar de sessionspecifika variablerna för den nuvarande klientanslutningen. Dessa variabler kan åsidosätta globala variabler under sessionens varaktighet.
`` `SQL
Visa sessionvariabler;
Visa sessionvariabler som 'karaktär_set%';
`` `
* `set` uttalande: Du kan använda uttalandet "Set" för att ändra sessionvariabler.
`` `SQL
Set karaktär_set_client ='utf8mb4';
`` `
Sammanfattningsvis:
* Använd `Visa Create Database` för att se skapandealternativ på databasnivå.
* Använd `Visa tabell` för att se skapandealternativ på bordsnivå (och allt om en tabellstruktur).
* Använd tabellerna `Information_Schema` för strukturerade metadata om databaser, tabeller och kolumner.
* Använd "Visa globala variabler" för att se aktiva serveromfattande inställningar.
* Använd "Visa sessionvariabler" för att se inställningar specifika för din nuvarande anslutning.
* Kontrollera MySQL -konfigurationsfilerna (my.cnf/my.ini) för standardserverinställningarna.
Att förstå var dessa alternativ lagras och hur de interagerar (Global vs. Session vs. Database vs. tabell) är avgörande för att hantera och felsöka dina MySQL -databaser. Kom också ihåg att de specifika tillgängliga alternativen och deras standardvärden kan variera beroende på MySQL -versionen du använder.