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:
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:
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.