Quando si esegue una query su un database MariaDB, MariaDB utilizza una serie di variabili di sistema per determinare quale set di caratteri e regole di confronto utilizzare ogni volta che vengono eseguite le query. Se il client utilizza un set di caratteri diverso dal server, MariaDB può tradurlo in un set di caratteri e regole di confronto appropriati.
Quando si inviano i risultati della query al client, MariaDB può tradurre questi risultati in un set di caratteri completamente diverso, se necessario. MariaDB utilizza le variabili di sistema per determinare quali set di caratteri e regole di confronto utilizzare in ciascuno di questi passaggi.
Ecco tre modi per mostrare le regole di confronto delle connessioni in MariaDB.
Il @@collation_connection
Variabile
Quanto segue restituisce le regole di confronto per la connessione (è possibile utilizzare la stessa sintassi per qualsiasi variabile di sistema):
SELECT @@collation_connection;
Esempio di risultato:
+------------------------+ | @@collation_connection | +------------------------+ | utf8_general_ci | +------------------------+
Il SHOW VARIABLES
Dichiarazione
Il SHOW VARIABLES
istruzione mostra i valori delle variabili di sistema MariaDB. Questo può restituire molti dati, quindi di solito è meglio usare un WHERE
o LIKE
clausola per restringere il campo solo alle variabili che ti interessano.
Esempio:
SHOW VARIABLES
WHERE Variable_name = 'collation_connection';
Esempio di risultato:
+----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | +----------------------+-----------------+
In alternativa, puoi usare il LIKE
clausola per restituire variabili che iniziano con collation
:
SHOW VARIABLES LIKE 'collation%';
Esempio di risultato:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
Per impostazione predefinita, SHOW VARIABLES
mostra la SESSION
variabili. In questo caso, restituisce i valori in vigore per la connessione corrente.
Pertanto, l'esempio precedente potrebbe essere riscritto come segue:
SHOW SESSION VARIABLES LIKE 'collation%';
Esempio di risultato:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
In alternativa, puoi sostituire SESSION
con LOCAL
(che è sinonimo di SESSION
):
SHOW LOCAL VARIABLES LIKE 'collation%';
Puoi anche usare il GLOBAL
modificatore per visualizzare i valori utilizzati per le nuove connessioni a MariaDB.
Esempio:
SHOW GLOBAL VARIABLES LIKE 'collation%';
Esempio di risultato:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8mb4_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
In questo caso, il GLOBAL
variabile per collation_connection
ha restituito un valore diverso al suo LOCAL
controparte.
Il mariadb-admin
Utilità (aka mysqladmin
)
È anche possibile ottenere informazioni sulle regole di confronto del server con mariadb-admin
utilità.
È possibile utilizzare questa utilità per restituire tutte le variabili. E puoi restringere queste variabili solo a quelle che ti interessano, in questo caso, il collation_connection
variabile.
Per restituire solo il collation_connection
variabile, apri un nuovo terminale ed esegui il seguente comando:
mariadb-admin variables | grep collation_connection
Risultato:
| collation_connection | utf8mb4_general_ci
Nota che questo è lo stesso valore di GLOBAL
variabile restituita sopra (e non la SESSION
variabile per la connessione corrente). Queste sono le regole di confronto predefinite per le nuove connessioni a MariaDB.
Un altro modo per farlo è sostituire mariadb-admin
con mysqladmin
.
In questo modo:
mysqladmin variables | grep collation_connection
Dovrai usare mysqladmin
se utilizzi una versione precedente di MariaDB (prima della 10.4.6). Da MariaDB 10.4.6, mariadb-admin è un collegamento simbolico a mysqladmin. Da MariaDB 10.5.2, mariadb-admin
è il nome dello script, con mysqladmin
un collegamento simbolico. Consulta la documentazione di MariaDB per mysqladmin
per ulteriori informazioni.