Zeitzonen für MySQL unter Debian einrichten

In den meisten Programmiersprachen gibt es Methoden bzw. Klassen um Zeiten von einer in eine andere Zeitzone umzurechnen. Auch MySQL bietet mit der Funktion CONVERT_TZ() die Möglichkeit Zeiten in andere Zeitzonen zu konvertieren.

Von Haus aus geht das jedoch nur mit Offsets wie +02:00 für die Deutsche Sommerzeit. Es ist jedoch einfacher und sinnvoller mit Zeitzonen wie Europe/Berlin zu arbeiten, da hierdurch Sommer- und Winterzeit korrekt verarbeitet werden.

Zum Verständnis: +02:00 ist ein Offset (offset). Europe/Berlin ist eine Zeitzone (timezone) mit zwei Offsets (+02:00 in der Sommerzeit und +01:00 in der Winterzeit). CEST (auch MESZ) ist eine Zeitangabe im Datum das ein spezielles Offset wiederspiegelt.


 

MySQL Zeitzonen eintragen

Variante 1: Um nun MySQL Zeitzonen „beizubringen“ ist gar nicht viel nötig. Da Debian von Haus aus schon mit Zeitzonen arbeiten kann und die Zeitzonendaten zur Verfügung stehen, reicht es schon diesen Einzeiler auf der Konsole auszuführen:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

Bei dieser Variante hier braucht Ihr einen MySQL User, der in die mysql Tabelle schreiben darf, wie der MySQL User root.

 

Variante 2: Wenn man MySQL unter Debian via APT installiert hat, geht es sogar noch einfacher:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql --defaults-file=/etc/mysql/debian.cnf mysql

Bei dieser Variante nutzt Ihr die Standard Debian Zugangsdaten für Wartung. Der Befehl muss als root User des Systems (nicht MySQL root) ausgeführt werden.


 

Ergebnis prüfen

Über die Konsole könnt Ihr nun diesen Befehl ausführen um zu testen ob alles geklappt hat:

echo "SELECT NOW(), CONVERT_TZ(NOW(),'Europe/Berlin','UTC');" | mysql --defaults-file=/etc/mysql/debian.cnf

Der erste Wert sollte nun mit der normalen Europe/Berlin identisch sein und der zweite Wert enthält die gleiche Zeit, aber in der Zeitzone UTC.


 

Schlussbemerkungen

Theoretisch ist die Einrichtung der Zeitzonen für MySQL keine einmalige Angelegenheit. Zeitzonen können sich ändern. Stellen wir uns doch einfach mal vor, dass die deutsche Sommerzeit doch irgendwann mal abgeschafft wird. In diesem Fall muss der oben stehende Einzeiler einfach erneut ausgeführt werden.

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte beachte die Hinweise zum Datenschutz