Кожен, хто ставив 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.
