Heim >Java >javaLernprogramm >Warum löst MySQL JDBC-Treiber 5.1.33 eine SQLException bezüglich der Serverzeitzone aus?
Eine Java-Webanwendung, die den JDBC-Treiber 5.1.23 verwendet, hatte keine Probleme beim Herstellen einer Verbindung mit einer MySQL 5.5-Datenbank. Beim Upgrade auf die Treiberversion 5.1.33 trat bei Tomcat jedoch beim Start der Anwendung eine Ausnahme auf. Die Fehlermeldung veranlasste eine Untersuchung, warum ein solcher Fehler auftrat.
Der aufgetretene Fehler war:
WARNING: Unexpected exception resolving reference java.sql.SQLException: The server timezone value 'UTC' is unrecognized or represents more than one timezone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc timezone value if you want to utilize timezone support.
Um dieses Problem zu beheben, wurde festgestellt, dass der MySQL JDBC-Treiber 5.1.33 explizit erforderlich ist Angabe des Parameters serverTimezone in der Verbindungszeichenfolge für die Unterstützung der UTC-Zeitzone. Dies wird erreicht, indem der Verbindungszeichenfolge Folgendes hinzugefügt wird:
?serverTimezone=UTC
Dieser Zusatz stellt sicher, dass der Treiber die angegebene Zeitzone für zeitliche Vorgänge verwendet, die Ausnahme auflöst und die ordnungsgemäße Funktion der Anwendung ermöglicht. Daher sieht die geänderte Verbindungszeichenfolge wie folgt aus:
jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Das obige ist der detaillierte Inhalt vonWarum löst MySQL JDBC-Treiber 5.1.33 eine SQLException bezüglich der Serverzeitzone aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!