Quando você executa uma consulta em um banco de dados MariaDB, o MariaDB usa várias variáveis do sistema para determinar qual conjunto de caracteres e agrupamento usar sempre que as consultas forem executadas. Se o cliente usar um conjunto de caracteres diferente do servidor, o MariaDB poderá traduzi-lo em um conjunto de caracteres e agrupamento apropriados.
Ao enviar os resultados da consulta de volta ao cliente, o MariaDB pode traduzir esses resultados de volta para um conjunto de caracteres diferente, se necessário. O MariaDB usa variáveis do sistema para determinar quais conjuntos de caracteres e agrupamentos devem ser usados em cada uma dessas etapas.
Aqui estão três maneiras de mostrar o agrupamento de conexão no MariaDB.
A @@collation_connection
Variável
O seguinte retorna o agrupamento para a conexão (você pode usar a mesma sintaxe para qualquer uma das variáveis do sistema):
SELECT @@collation_connection;
Exemplo de resultado:
+------------------------+ | @@collation_connection | +------------------------+ | utf8_general_ci | +------------------------+
O SHOW VARIABLES
Declaração
O
SHOW VARIABLES
A instrução mostra os valores das variáveis do sistema MariaDB. Isso pode retornar muitos dados, então geralmente é melhor usar um WHERE
ou LIKE
cláusula para reduzi-la apenas às variáveis nas quais você está interessado. Exemplo:
SHOW VARIABLES
WHERE Variable_name = 'collation_connection';
Exemplo de resultado:
+----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | +----------------------+-----------------+
Alternativamente, você pode usar o
LIKE
cláusula para retornar variáveis que começam com collation
:SHOW VARIABLES LIKE 'collation%';
Exemplo de resultado:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
Por padrão,
SHOW VARIABLES
mostra a SESSION
variáveis. Nesse caso, ele retorna os valores que estão em vigor para a conexão atual. Portanto, o exemplo anterior poderia ser reescrito da seguinte forma:
SHOW SESSION VARIABLES LIKE 'collation%';
Exemplo de resultado:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
Alternativamente, você pode substituir
SESSION
com LOCAL
(que é sinônimo de SESSION
):SHOW LOCAL VARIABLES LIKE 'collation%';
Você também pode usar o
GLOBAL
modificador para exibir os valores que são usados para novas conexões com MariaDB. Exemplo:
SHOW GLOBAL VARIABLES LIKE 'collation%';
Exemplo de resultado:
+----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | collation_connection | utf8mb4_general_ci | | collation_database | utf8mb4_general_ci | | collation_server | utf8mb4_general_ci | +----------------------+--------------------+
Neste caso, o
GLOBAL
variável para collation_connection
retornou um valor diferente para seu LOCAL
contrapartida. O mariadb-admin
Utilitário (também conhecido como mysqladmin
)
Também é possível obter informações de agrupamento do servidor com o
mariadb-admin
Utilitário. Você pode usar este utilitário para retornar todas as variáveis. E você pode restringir essas variáveis apenas às de seu interesse – neste caso, a
collation_connection
variável. Para retornar apenas o
collation_connection
variável, abra um novo terminal e execute o seguinte comando:mariadb-admin variables | grep collation_connection
Resultado:
| collation_connection | utf8mb4_general_ci
Observe que este é o mesmo valor que o
GLOBAL
variável retornada acima (e não a SESSION
variável para a conexão atual). Este é o agrupamento padrão para novas conexões com o MariaDB. Outra maneira de fazer isso é substituir
mariadb-admin
com mysqladmin
. Assim:
mysqladmin variables | grep collation_connection
Você precisará usar
mysqladmin
se você usar uma versão anterior do MariaDB (antes de 10.4.6). Do MariaDB 10.4.6, mariadb-admin é um link simbólico para mysqladmin. Do MariaDB 10.5.2, mariadb-admin
é o nome do script, com mysqladmin
um link simbólico. Veja a documentação do MariaDB para mysqladmin
Para maiores informações.