Jeder, der einen Zabbix-Server eingerichtet hat, ist auf das Problem der Codierung in der Web-GUI-Oberfläche gestoßen, wobei der gesamte russische Text als Fragezeichen angezeigt wird. Das Problem liegt in den Standard-Codierungen der Datenbanktabellen, die wir ändern werden, um das Problem zu beheben.
Wir müssen die Codierung der Tabellen und der darin enthaltenen Daten von latin1 in UTF-8 konvertieren.
Zuerst stoppen wir den zabbix-server:
|
1
2
3
4
5
|
/etc/init.d/zabbix-server stop
oder
systemctl stop zabbix-server
oder
service zabbix-server stop
|
Als Nächstes müssen wir einen Dump der Datenbank erstellen.
|
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
|
Wie man sieht, haben wir 3 Tabellen vom Dump ausgeschlossen, da sie keine Zeilen enthalten und der MySQL-Server beim Import des modifizierten Dumps auf der Tabelle images abgestürzt ist.
Diese drei Tabellen schreiben wir in einen separaten Dump, den wir nicht modifizieren werden.
|
1
|
mysqldump -u root -p --default-character-set=latin1 -c --insert-ignore --skip-set-charset -r z4.sql zabbix history history_uint images
|
Es wird dringend empfohlen, die ursprünglichen Dump-Dateien zu speichern, um im Bedarfsfall auf sie zurückgreifen zu können.
Ändern Sie die Kodierung aller Einträge in der Dump-Datei z1.sql.
|
1
|
iconv -f ISO8859-1 -t UTF-8 z1.sql > z2.sql
|
Ersetzen Sie alle Kodierungsreferenzen in der Dump-Datei z2.sql.
|
1
|
cat z2.sql |sed -e 's/ CHARSET=latin1/ CHARSET=utf8/g' > z3.sql
|
Erstellen Sie die Datenbank neu, um sie von allen Tabellen zu befreien und sie im erforderlichen Zeichensatz zu erstellen.
|
1
|
mysql -u root -p --execute="DROP DATABASE zabbix; CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_general_ci;"
|
Laden Sie das Dump-File z4.sql in die Datenbank.
|
1
|
mysql -u root --max_allowed_packet=16M -p --default-character-set=utf8 zabbix < z4.sql
|
Laden Sie das Dump-Datei z3.sql in die Datenbank.
|
1
|
mysql -u root --max_allowed_packet=16M -p --default-character-set=utf8 zabbix < z3.sql
|
Und starten Sie den Zabbix-Server wieder.
|
1
2
3
4
5
|
/etc/init.d/zabbix-server start
oder
systemctl start zabbix-server
oder
service zabbix-server start
|
Wir überprüfen die korrekte Funktion der Zabbix-Server-Web-Oberfläche. Im Falle von Problemen gehen wir auf die Backups z1.sql und z4.sql zurück.
