Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

2 Reparar el conjunto de caracteres y la intercalación de la base de datos de Zabbix

MySQL/MariaDB

Históricamente, MySQL y sus derivados usaban 'utf8' como un 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 conjunto de caracteres 'utf8mb3' está obsoleto y en algún momento se eliminará su soporte, mientras que 'utf8' se convertirá en una referencia a 'utf8mb4'. Desde Zabbix 6.0, se admite 'utf8mb4'. Para evitar problemas futuros, se recomienda encarecidamente utilizar 'utf8mb4'. Otra ventaja de cambiar a 'utf8mb4' es el soporte de caracteres Unicode suplementarios.

Como las versiones anteriores a Zabbix 6.0 no reconocen utf8mb4, asegúrese de actualizar primero el servidor Zabbix y el esquema de la base de datos a 6.0.x o posterior antes de ejecutar la conversión a utf8mb4.

1. Compruebe el conjunto de caracteres y la intercalación de la base de datos.

Por ejemplo:

mysql> SELECT @@character_set_database, @@collation_database;
       +--------------------------+----------------------+
       | @@character_set_database | @@collation_database |
       +--------------------------+----------------------+
       | latin2                   | 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 la intercalación no es 'utf8mb4_bin', por lo que necesitamos corregirlos.

2. Detenga Zabbix.

3. ¡Cree una copia de respaldo de la base de datos!

4. Corrija el conjunto de caracteres y la intercalación a nivel de base de datos:

alter database <su nombre de BD> 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 conjunto de caracteres y la intercalación a nivel de tabla y columna:

mysql <su nombre de BD> < utf8mb4_convert.sql

6. Ejecute el script:

               SET @ZABBIX_DATABASE = '<su nombre de BD>';
       Si es MariaDB →  set innodb_strict_mode = OFF;        
                      CALL zbx_convert_utf8();
       Si es 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, puede que desee crear una copia de respaldo de la base de datos con la base de datos corregida.

8. Inicie Zabbix.