Историјски гледано, MySQL и деривати су користили 'utf8' као псеудоним за utf8mb3 - MySQL сопствену 3-бајтну имплементацију стандардног UTF8, који је 4-бајтни. Почевши од MySQL 8.0.28 и MariaDB 10.6.1, 'utf8mb3' је застарео и у неком тренутку ће подршка за њега бити укинута, док ће 'utf8' постати референца на 'utf8mb4'. Од Zabbix-а 6.0, 'utf8mb4' је подржан. Да би се избегли будући проблеми, топло се препоручује да користите 'utf8mb4'. Још једна предност преласка на 'utf8mb4' је подршка за допунске Unicode карактере.
Пошто верзије пре Zabbix-а 6.0 не подржавају utf8mb4, обавезно прво надоградите Zabbix сервер и DB шему на 6.0.x или новију пре извршења utf8mb4 конверзије.
1. Проверите скуп карактера и поређење у бази података.
На пример:
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------+--------------------- +
| @@character_set_database | @@collation_database | |
+--------------------+--------------------- +
| latin2| latin2 _general_ci |
+--------------------+--------------------- +
Или:
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------+--------------------- +
| @@character_set_database | @@collation_database |
+--------------------+--------------------- +
| utf8| utf8_bin |
+--------------------+--------------------- +
Као што видимо, овде скуп карактера није 'utf8mb4', а упоређивање није 'utf8mb4_bin', па морамо да их поправимо.
2. Зауставите Zabbix.
3. Направите резервну копију базе података!
4. Исправите скуп карактера и поређења на нивоу базе података:
Фиксне вредности:
mysql> SELECT @@character_set_database, @@collation_database;
+--------------------+--------------------- +
| @@character_set_database | @@collation_database |
+--------------------+--------------------- +
| utf8mb4| utf8mb4_bin |
+--------------------+--------------------- +
5. Учитајте скрипт да поправите скуп карактера и поређања на нивоу табеле и колоне:
6. Извршите скрипту:
SET @ZABBIX_DATABASE = '<your DB name>';
If MariaDB →set innodb_strict_mode = OFF;
CALL zbx_convert_utf8();
If MariaDB →set innodb_strict_mode = ON;
drop procedure zbx_convert_utf8;
Имајте на уму да се очекује да ће 'utf8mb4' заузети нешто више простора на диску.
7. Ако нема грешака - можда ћете желети да направите резервну копију базе података са исправљање базе података.
8. Покрените Zabbix.