wake-up-neo.net

Der Serverzeitzonenwert 'CEST' wird nicht erkannt

Ich verwende Hibernate (Hibernate Maven 5.2.15.Final, MySQL-Connector Maven 8.0.9-rc) mit MySQL 5.7 auf LAMPP-Umgebung unter Linux so.

Ich bin in Italien (Mitteleuropäische Sommerzeit) und einmal am 25. März, tritt folgender Fehler auf:

Der Serverzeitzonenwert 'CEST' wird nicht erkannt oder repräsentiert mehr als eine Zeitzone. Sie müssen entweder den Server oder den JDBC-Treiber (über die Konfigurationseigenschaft serverTimezone) so konfigurieren, dass ein genauerer Zeitzonenwert verwendet wird, wenn Sie die Zeitzonenunterstützung verwenden möchten.

Auf der MySQL-Konsole lief ich:

SHOW GLOBAL VARIABLES LIKE 'time_zone';
SET GLOBAL time_zone='Europe/Rome'; 

aber das blieb nicht bestehen.

Dann habe ich zu my.cnf Datei (in/etc/mysql):

[mysqld] 
default-time-zone = 'Europe/Rome' 

und auch:

default_time_zone = 'Europe/Rome' 

aber der db server hat noch nicht gestartet ...

Warum tritt der Fehler auf? Könnte mir jemand helfen?

Vielen Dank!

13
Filippodb

Die Antwort von @ aiman ist nicht korrekt, da in Ihrem Fall die effektive Server-Zeitzone nicht UTC ist.

Sie finden im Internet einige Lösungen, einschließlich zusätzlicher Parameter in der jdbc-Verbindungszeichenfolge, aber es gibt Fälle, in denen Sie diese Zeichenfolge nicht ändern können.

So habe ich es behoben:

Importieren Sie zuerst die System-Zeitzonen in MySQL:

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

Dann legen Sie Ihre Standard-MySQL-Server-Zeitzone in der [mysqld] Abschnitt von /etc/mysql/my.cnf (Oder von /etc/mysql/mysql.conf.d/mysqld.cnf auf aktuellen Debian/Ubuntu-Distributionen) zu Ihrer aktuellen Server-Zeitzone, zum Beispiel:

default_time_zone = Europe/Paris

und vergessen Sie nicht, mysql neu zu starten

$ Sudo service mysql restart

(oder den entsprechenden Befehl abhängig von Ihrer Distribution).

15
Claude Brisson

Zuerst sehen Sie Ihre MySQL-Server-Zeitzone:
mysql -e "SELECT @@global.time_zone;" -u <mysqluser> -p.
Höchstwahrscheinlich sollte es SYSTEM sein.
Finden Sie Ihre System-Zeitzone: date +”%Z.
Sehen Sie, ob es MESZ ist.
Sie müssen die Zeitzone Ihres Systems ändern:

#cd /usr/share/zoneinfo
#ls -l
#rm /etc/localtime
#ln -s /usr/share/zoneinfo/UTC /etc/localtime

Starten Sie dann Ihren MySQL-Server neu: /etc/init.d/mysqld restart.

Genießen

6
aiman