2 Reparando o conjunto de caracteres e agrupamento do banco de dados Zabbix

MySQL/MariaDB

Historicamente, o MySQL e seus derivados usavam 'utf8' como um alias para utf8mb3 - a própria implementação de 3 bytes do UTF8 padrão do MySQL, que é de 4 bytes. A partir do MySQL 8.0.28 e MariaDB 10.6.1, o conjunto de caracteres 'utf8mb3' é obsoleto e em algum momento seu suporte será descartado enquanto 'utf8' tornar-se uma referência a 'utf8mb4'. Desde o Zabbix 6.0, 'utf8mb4' é suportado. Para evitar problemas futuros, é altamente recomendado usar 'utf8mb4'. Outra vantagem de mudar para 'utf8mb4' é o suporte de Unicode suplementar personagens.

1. Verifique o conjunto de caracteres e o agrupamento do banco de dados.

Por exemplo:

mysql> SELECT @@character_set_database, @@collation_database;
       +--------------------------+---------------------- +
       | @@character_set_database | @@collation_database |
       +--------------------------+---------------------- +
       | latin2 | latin2 _general_ci |
       +--------------------------+---------------------- +

Ou:

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

Como vemos, o conjunto de caracteres aqui não é 'utf8mb4' e o agrupamento não é 'utf8mb4_bin', então precisamos corrigi-los.

2. Pare o Zabbix.

3. Crie uma cópia de backup do banco de dados!

4. Corrija o conjunto de caracteres e o agrupamento no nível do banco de dados:

alter database <your DB name> conjunto de caracteres utf8mb4 collate utf8mb4_bin;

Valores fixos:

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

5. Carregue o script para corrigir o conjunto de caracteres e o agrupamento no nível da tabela e da coluna:

mysql <nome do seu banco de dados> <utf8mb4_convert.sql

6. Execute o script:

               SET @ZABBIX_DATABASE = '<nome do seu banco de dados>';
       Se MariaDB → definir innodb_strict_mode = OFF;
                      CALL zbx_convert_utf8();
       Se MariaDB → definir innodb_strict_mode = ON;
                      procedimento de descarte zbx_convert_utf8;

Observe que 'utf8mb4' deve consumir um pouco mais de espaço em disco.

7. Se não houver erros - talvez você queira criar uma cópia de backup do banco de dados com o banco de dados fixo.

8. Inicie o Zabbix.