Историјски гледано, 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. Поправите скуп знакова и колацију на нивоу базе података:
alter database <ваше име базе података> character set utf8mb4 collate utf8mb4_bin;
Фиксне вредности:
mysql> SELECT @@character_set_database, @@collation_database; +---------------------------+----------------------+ | @@character_set_database | @@collation_database | +---------------------------+-----------------------+ | utf8mb4| utf8mb4_bin| +--------------------------+-----------------------+
5. Учитајте скрипту да бисте поправили скуп знакова и колацију на нивоу табеле и колоне:
mysql <ваше име базе података> < utf8mb4_convert.sql
6. Извршите скрипту:
SET @ZABBIX_DATABASE = '<ваше име базе података>'; Ако је MariaDB →set innodb_strict_mode = OFF; CALL zbx_convert_utf8(); Ако је MariaDB →set innodb_strict_mode = ON; испустите процедуру zbx_convert_utf8;
Имајте у виду да се очекује да ће 'utf8mb4' потрошити мало више простора на диску.
7. Ако нема грешака - можда ћете желети да направите резервну копију базе података са исправљеном базом података.
8. Покрените Zabbix.