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