Como garantir que o conjunto de caracteres do banco de dados de uma instância do GaussDB(for MySQL) esteja correto?
UTF-8 suporta caracteres de 4 bytes, mas GaussDB(for MySQL) utf8 suporta apenas caracteres de 3 bytes. Emojis e caracteres Unicode recém-adicionados não podem ser armazenados usando o conjunto de caracteres MySQL utf8. O MySQL lançou o conjunto de caracteres utf8mb4 em 2010 e adicionou o código utf8mb4 após o 5.5.3 para ser compatível com o unicode de 4 bytes. Você só precisa mudar utf8 para utf8mb4. Nenhuma outra conversão é necessária.
O Data Admin Service (DAS) da Huawei Cloud é uma ferramenta profissional de gerenciamento de banco de dados. Você pode exibir os conjuntos de caracteres do banco de dados e do sistema por meio do console do DAS.
Procedimento
- Faça logon no console de gerenciamento.
- Clique em no canto superior esquerdo e selecione uma região e um projeto.
- Clique em no canto superior esquerdo da página, escolha .
- Na página Instances, localize a instância e clique em Log In na coluna Operation.
Como alternativa, na página Instances, clique no nome da instância para acessar a página Basic Information. Clique em Log In no canto superior direito da página.
- Na janela de logon exibida, insira o nome de usuário e a senha corretos e clique em Log In.
- Na barra de menu superior, escolha SQL Operations > SQL Window.
- Execute a seguinte instrução SQL na janela de SQL para exibir o conjunto de caracteres do banco de dados:
show variables like '%character%';
Figura 1 Resultado da execução de SQL
- Execute a seguinte instrução SQL na janela SQL para exibir a codificação do banco de dados:
show variables like 'collation%';
Figura 2 Resultado da execução de SQL
- Altere o conjunto de caracteres para utf8mb4.
- Execute a seguinte instrução SQL para alterar os conjuntos de caracteres do banco de dados.
ALTER DATABASE DATABASE_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- Execute a seguinte instrução SQL para alterar os conjuntos de caracteres da tabela.
- Execute a seguinte instrução SQL para alterar todos os conjuntos de caracteres de campo em tabelas:
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- character_set_client, character_set_connection e character_set_results são as configurações do cliente.
- character_set_system, character_set_server e character_set_database são as configurações do servidor.
- As prioridades dos parâmetros no servidor são as seguintes: character_set_database > character_set_server > character_set_system.
- Execute a seguinte instrução SQL para alterar os conjuntos de caracteres do banco de dados.