Каждый, кто ставил Zabbix сервер столкнулся с проблемой кодировки в Web GUI интерфейсе, весь русский текст показывается в виде вопросов. Проблема кроется в стандартных кодировках таблиц БД, изменением которой и займемся для её исправления.
Нам необходимо конвертировать кодировку таблиц и данных в них из latin1 в UTF-8.
Первым делом останавливаем zabbix-server:
|
1
2
3
4
5
|
/etc/init.d/zabbix-server stop
или
systemctl stop zabbix-server
или
service zabbix-server stop
|
Далее необходимо сделать дамп базы данных
|
1
|
mysqldump -u root -p --ignore-table=zabbix.history --ignore-table=zabbix.history_uint --ignore-table=zabbix.images --default-character-set=latin1 -c --insert-ignore --skip-set-charset -r z1.sql zabbix
|
Как видно, мы исключили 3 таблицы из дампа, т.к. они не содержат строк, а на таблице images у меня падал mysql сервер при импорте измененного дампа.
Эти три таблицы мы заносим в отдельный дамп, который не будем модифицировать
|
1
|
mysqldump -u root -p --default-character-set=latin1 -c --insert-ignore --skip-set-charset -r z4.sql zabbix history history_uint images
|
Настоятельно рекомендую сохранить исходные дампы для возможности отката
Меняем кодировку всех записей в дампе z1.sql
|
1
|
iconv -f ISO8859-1 -t UTF-8 z1.sql > z2.sql
|
Заменяем все упоминания кодировок в дампе z2.sql
|
1
|
cat z2.sql |sed -e 's/ CHARSET=latin1/ CHARSET=utf8/g' > z3.sql
|
Пересоздаем БД для того, чтобы очистить её от всех таблиц и создать в необходимой кодировке
|
1
|
mysql -u root -p --execute="DROP DATABASE zabbix; CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_general_ci;"
|
Загружаем дамп z4.sql в БД
|
1
|
mysql -u root --max_allowed_packet=16M -p --default-character-set=utf8 zabbix < z4.sql
|
Загружаем дамп z3.sql в БД
|
1
|
mysql -u root --max_allowed_packet=16M -p --default-character-set=utf8 zabbix < z3.sql
|
И запускаем zabbix server обратно
|
1
2
3
4
5
|
/etc/init.d/zabbix-server start
или
systemctl start zabbix-server
или
service zabbix-server start
|
Проверяем корректность работы WEB интерфейса Zabbix сервера. В случае проблем — откатываемся на дампы z1.sql и z4.sql.
