¿Cómo me aseguro de que el conjunto de caracteres de la base de datos de una instancia de GaussDB(for MySQL) es correcto?
UTF-8 soporta 4 caracteres de byte, pero GaussDB(for MySQL) utf8 soporta solo 3 caracteres de byte. Los emojis y los caracteres Unicode recién agregados no se pueden almacenar con el conjunto de caracteres MySQL utf8. MySQL lanzó el conjunto de caracteres utf8mb4 en 2010 y agregó el código utf8mb4 después de 5.5.3 para ser compatible con el unicode de 4 bytes. Solo necesita cambiar utf8 a utf8mb4. No se requiere ninguna otra conversión.
Data Admin Service (DAS) de Huawei Cloud es una herramienta profesional de gestión de bases de datos. Puede ver los conjuntos de caracteres del sistema y de la base de datos a través de la consola de DAS.
Procedimiento
- Log in to the management console.
- Click in the upper left corner and select a region and a project.
- Click in the upper left corner of the page, choose .
- En la página Instances, busque la instancia y haga clic en Log In en la columna Operation.
Como alternativa, en la página Instances, haga clic en el nombre de la instancia para ir a la página Basic Information. Haga clic en Log In en la esquina superior derecha de la página.
- En la página de inicio de sesión mostrada, ingrese el nombre de usuario y la contraseña correctos y haga clic en Log In.
- En la barra de menú superior, elija SQL Operations > SQL Window.
- Ejecute la siguiente sentencia de SQL en la ventana de SQL para ver el conjunto de caracteres de la base de datos:
show variables like '%character%';
Figura 1 Resultado de ejecución SQL
- Ejecute la siguiente sentencia SQL en la ventana de SQL para ver la codificación de la base de datos:
show variables like 'collation%';
Figura 2 Resultado de ejecución SQL
- Cambie el conjunto de caracteres a utf8mb4.
- Ejecute la siguiente sentencia SQL para cambiar los conjuntos de caracteres de la base de datos.
ALTER DATABASE DATABASE_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- Ejecute la siguiente sentencia SQL para cambiar los conjuntos de caracteres de la tabla.
- Ejecute la siguiente sentencia SQL para cambiar todos los conjuntos de caracteres de campo en las tablas:
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- character_set_client, character_set_connection y character_set_results son los ajustes del cliente.
- character_set_system, character_set_server y character_set_database son los ajustes del servidor.
- Las prioridades de los parámetros en el servidor son las siguientes: character_set_database > character_set_server > character_set_system.
- Ejecute la siguiente sentencia SQL para cambiar los conjuntos de caracteres de la base de datos.