När du kör en fråga mot en MariaDB-databas använder MariaDB ett gäng systemvariabler för att avgöra vilken teckenuppsättning och sortering som ska användas när frågor körs. Om klienten använder en annan teckenuppsättning än servern kan MariaDB översätta den till en lämplig teckenuppsättning och sortering.
När du skickar frågeresultaten tillbaka till klienten kan MariaDB översätta dessa resultat tillbaka till en annan teckenuppsättning helt och hållet om det behövs. MariaDB använder systemvariabler för att bestämma vilka teckenuppsättningar och sammanställningar som ska användas vid vart och ett av dessa steg.
Här är tre sätt att visa anslutningssorteringen i MariaDB.
@@collation_connection
Variabel
Följande returnerar sammanställningen för anslutningen (du kan använda samma syntax för vilken som helst av systemvariablerna):
SELECT @@collation_connection;
Exempelresultat:
+------------------------+ | @@collation_connection | +------------------------+ | utf8_general_ci | +------------------------+
SHOW VARIABLES
Uttalande
SHOW VARIABLES
uttalande visar värdena för MariaDB-systemvariabler. Detta kan returnera mycket data, så det är vanligtvis bäst att använda antingen en WHERE
eller LIKE
klausul för att begränsa den till endast de variabler som du är intresserad av.
Exempel:
SHOW VARIABLES
WHERE Variable_name = 'collation_connection';
Exempelresultat:
+----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | +----------------------+-----------------+
Alternativt kan du använda LIKE
sats för att returnera variabler som börjar med collation
:
SHOW VARIABLES LIKE 'collation%';
Exempelresultat:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
Som standard är SHOW VARIABLES
visar SESSION
variabler. I det här fallet returnerar den de värden som gäller för den aktuella anslutningen.
Därför skulle det föregående exemplet kunna skrivas om enligt följande:
SHOW SESSION VARIABLES LIKE 'collation%';
Exempelresultat:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
Alternativt kan du ersätta SESSION
med LOCAL
(som är en synonym för SESSION
):
SHOW LOCAL VARIABLES LIKE 'collation%';
Du kan också använda GLOBAL
modifierare för att visa värdena som används för nya anslutningar till MariaDB.
Exempel:
SHOW GLOBAL VARIABLES LIKE 'collation%';
Exempelresultat:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8mb4_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
I det här fallet, GLOBAL
variabel för collation_connection
returnerade ett annat värde till dess LOCAL
motsvarighet.
mariadb-admin
Verktyg (alias mysqladmin
)
Det är också möjligt att få serverkollationsinformation med mariadb-admin
verktyg.
Du kan använda det här verktyget för att returnera alla variabler. Och du kan begränsa dessa variabler till bara de du är intresserad av – i det här fallet collation_connection
variabel.
För att bara returnera collation_connection
variabel, öppna en ny terminal och kör följande kommando:
mariadb-admin variables | grep collation_connection
Resultat:
| collation_connection | utf8mb4_general_ci
Observera att detta är samma värde som GLOBAL
variabeln som returneras ovan (och inte SESSION
variabel för den aktuella anslutningen). Detta är standardsorteringen för nya anslutningar till MariaDB.
Ett annat sätt att göra det är att ersätta mariadb-admin
med mysqladmin
.
Så här:
mysqladmin variables | grep collation_connection
Du måste använda mysqladmin
om du använder en tidigare version av MariaDB (före 10.4.6). Från MariaDB 10.4.6 är mariadb-admin en symbollänk till mysqladmin. Från MariaDB 10.5.2, mariadb-admin
är namnet på skriptet, med mysqladmin
en symbollänk. Se MariaDB-dokumentationen för mysqladmin
för mer information.