Áú»¢¶Ä²©

Esta es una traducci¨®n de la p¨¢gina de documentaci¨®n original en espa?ol. Ay¨²danos a mejorarla.

2 Reparar el juego de caracteres y collation de la base de datos Áú»¢¶Ä²©

MySQL/MariaDB

Hist¨®ricamente, MySQL y sus derivados usaban 'utf8' como alias para utf8mb3, la implementaci¨®n propia de MySQL de 3 bytes del est¨¢ndar UTF8, que es de 4 bytes. A partir de MySQL 8.0.28 y MariaDB 10.6.1, el juego de caracteres 'utf8mb3' est¨¢ en desuso y en alg¨²n momento su soporte dejar¨¢ de ser compatible, mientras que 'utf8' desaparecer¨¢ para convertirse en una referencia a 'utf8mb4'. Desde Áú»¢¶Ä²© 6.0, se admite 'utf8mb4'. Para evitar problemas futuros, se recomienda encarecidamente utilizar 'utf8mb4'. Otra ventaja de cambiar a 'utf8mb4' es la compatibilidad con los caracteres complementarios de Unicode .

Como las versiones anteriores a Áú»¢¶Ä²© 6.0 no reconocen utf8mb4, aseg¨²rese de actualizar primero el Servidor Áú»¢¶Ä²© y el esquema de base de datos a 6.0.x o posterior antes de ejecutar la conversi¨®n a utf8mb4.

1. Verifique el juego de caracteres y collation de la base de datos.

Por ejemplo:

mysql> SELECT @@character_set_database, @@collation_database;
       +--------------------+---------------------- +
       | @@character_set_database | @@collation_database |
       +--------------------+---------------------- +
       | lat¨ª²Ô2 | latin2 _general_ci |
       +--------------------+---------------------- +

O:

mysql> SELECT @@character_set_database, @@collation_database;
       +--------------------+---------------------- +
       | @@character_set_database | @@collation_database |
       +--------------------+---------------------- +
       | utf8 | utf8_bin |
       +--------------------+---------------------- +

Como vemos, el conjunto de caracteres aqu¨ª no es 'utf8mb4' y collation no es 'utf8mb4_bin', por lo que debemos corregirlos.

2. Para Áú»¢¶Ä²©.

3. ?Crea una copia de seguridad de la base de datos!

4. Corrige el juego de caracteres y collation en el nivel de la base de datos:

alter database <your DB name> character set utf8mb4 collate utf8mb4_bin;

Valores corregidos:

mysql> SELECT @@character_set_database, @@collation_database;
       +--------------------+---------------------- +
       | @@character_set_database | @@collation_database |
       +--------------------+---------------------- +
       | utf8mb4 | utf8mb4_bin |
       +--------------------+---------------------- +

5. Cargue el script para corregir el juego de caracteres y collation a nivel de tabla y columna:

mysql <your DB name> < utf8mb4_convert.sql

6. Ejecute el script:

SET @ZABBIX_DATABASE = '<your DB name>';
       If MariaDB ¡úset innodb_strict_mode = OFF;
       CALL zbx_convert_utf8();
       If MariaDB ¡úset innodb_strict_mode = ON;
       drop procedure zbx_convert_utf8;

Tenga en cuenta que se espera que 'utf8mb4' consuma un poco m¨¢s de espacio en disco.

7. Si no hay errores, es posible que desee crear una copia de seguridad de la base de datos con la base de datos corregida.

8. Inicie Áú»¢¶Ä²©.