Zabbix: Fehler nach Upgrade auf 4.2

     

The frontend does not match Zabbix database. Current database version (mandatory/optional): 4010005/4010005. Required mandatory version: 40200000. Contact your system administrator.

Diese nette Fehlermeldung hat mich heute nach dem Upgrade meines Zabbix Server auf Version 4.2 begrüßt.

Im Log des Servers habe ich dann den entscheidenden Hinweis gefunden, wieso das automatische Upgrade der Datenbank nicht funktioniert hatte:

[Z3005] query failed: [1071] Specified key was too long; max key length is 767 bytes [create unique index lld_macro_path_1 on lld_macro_path (itemid,lld_macro)]

Letzten Endes hatte ich offenbar beim damaligen Erstellen der Datenbank für Zabbix nicht gut genug aufgepasst und das Charset/die Kollation falsch gesetzt. Sollte euch das auch passiert sein: keine Panik!

Ihr könnt die Datenbank mit zwei einfachen Befehlen auf die empfohlenen Optionen utf8/utf8_bin umstellen, vorher sollte natürlich unbedingt ein Backup der Datenbank stattfinden!

# Herausfinden, ob das falsche Charset gewählt ist
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "zabbix";

# Alle Tabellen der Datenbank "zabbix" umstellen
mysql --database=zabbix -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; SET foreign_key_checks = 1; "}' | mysql --database=zabbix

# Die eigentliche Datenbank "zabbix" umstellen
ALTER DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;

Wurden die Befehle korrekt ausgeführt, könnt ihr den Zabbix Server neugestartet werden und das Log sollte nun das korrekt gelaufene Datenbank-Upgrade ausspucken – und das Frontend wieder erreichbar sein.