Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

2 Reparando o conjunto de caracteres e a collation do banco de dados do Zabbix

MySQL/MariaDB

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

Como versões anteriores ao Zabbix 6.0 não reconhecem utf8mb4, certifique-se de primeiro atualizar o Zabbix server e o schema do banco de dados para 6.0.x ou superior antes de executar a conversão para utf8mb4.

1. Verifique o conjunto de caracteres e a collation 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 podemos ver, o conjunto de caracteres aqui não é 'utf8mb4' e a collation 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 a collation no nível do banco de dados:

alter database <seu nome do BD> character set utf8mb4 collate utf8mb4_bin;

Valores corrigidos:

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 a collation no nível de tabela e coluna:

mysql <seu nome do BD> < utf8mb4_convert.sql

6. Execute o script:

               SET @ZABBIX_DATABASE = '<seu nome do BD>';
       Se MariaDB →  set innodb_strict_mode = OFF;        
                      CALL zbx_convert_utf8();
       Se MariaDB →  set innodb_strict_mode = ON;   
                      drop procedure zbx_convert_utf8;

Observe que espera-se que 'utf8mb4' consuma um pouco mais de espaço em disco.

7. Se não houver erros, você pode querer criar uma cópia de backup do banco de dados com o banco de dados corrigido.

8. Inicie o Zabbix.