MariaDB
 sql >> Database >  >> RDS >> MariaDB

3 modi per mostrare le regole di confronto per la tua connessione in MariaDB

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.