Como garantir que o conjunto de caracteres de um banco de dados RDS MySQL está correto?
UTF-8 suporta caracteres de 4 bytes, mas o RDS for MySQL utf8 suporta apenas caracteres de 3 bytes. Emojis, caracteres chineses incomuns 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) é 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 e escolha Databases > Relational Database Service.
- Na página Instances, localize a instância de BD de destino e clique em Log In na coluna Operation.
Como alternativa, clique na instância de BD de destino na página Instances. Na página Basic Information exibida, 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 Operation > 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.