So vermeiden Sie die URL-Zeitzonenfalle in MySQL

So vermeiden Sie die URL-Zeitzonenfalle in MySQL

Vorwort

Wenn Sie MySQL 6.0.x oder höher (JAR) verwenden, müssen Sie neuerdings die ServerTimezone im URL-Link des Codes angeben. Es tritt eine Ausnahme auf:

1. ServerTimezone nicht angegeben

Konfigurieren der URL in XML

<Eigenschaftsname="URL" Wert="jdbc:mysql://localhost:3306/mybatisstudy"/>

Anomalien

Verursacht durch: com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: Der Server-Zeitzonenwert „�й���׼ʱ��“ wird nicht erkannt oder stellt mehr als eine Zeitzone dar. Sie müssen entweder den Server oder den JDBC-Treiber (über die Konfigurationseigenschaft „serverTimezone“) so konfigurieren, dass ein spezifischerer Zeitzonenwert verwendet wird, wenn Sie die Zeitzonenunterstützung nutzen möchten.

Sie müssen den Server oder JDBC-Treiber (über die Konfigurationseigenschaft „serverTimezone“) so konfigurieren, dass ein detaillierterer Zeitzonenwert verwendet wird, wenn Sie die Zeitzonenunterstützung nutzen möchten.

2. Online-Lösungen

Fügen Sie den Parameter ?serverTimezone=utc nach der URL hinzu

<Eigenschaftsname="URL" Wert="jdbc:mysql://localhost:3306/springdatastudy?serverTimezone=UTC"/>

2.1. Aufgetretene Probleme

Obwohl beim Hinzufügen des Zeitzonenprogramms oben kein Fehler auftritt, gibt es ein Problem, wenn wir die Zeit mithilfe von Java-Code in die Datenbank einfügen.

Beispielsweise lautet die in den Java-Code eingefügte Zeit: 2017-08-21 17:29:56

Die in der Datenbank angezeigte Zeit lautet jedoch: 2017-08-21 09:29:56

3. Grundursache

Wegen des Problems mit der Zeitzoneneinstellung.

UTC steht für Universal Coordinated Time (koordinierte Weltzeit), die von uns verwendete Zeit ist jedoch die Zeitzone von Peking, also Ost-8 Uhr, also acht Stunden vor UTC.

UTC + (+0800) = Ortszeit (Peking)

4. Lösung

Die Zeitzone der URL verwendet die chinesische Standardzeit. Das heißt, serverTimezone=Asia/Shanghai

4.1 Verwenden Sie Java-Code, um die lokale Zeitzonen-ID abzurufen

Kalender cal = Kalender.getInstance();
ZeitZone ZeitZone = cal.getTimeZone();
System.out.println(timeZone.getID());
System.out.println(timeZone.getDisplayName());
Asien/Shanghai
Chinesische Standardzeit

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Änderung des Zeitzonenproblems von MySQL-Containern in Docker
  • Detaillierte Erklärung des MySQL-Zeitzonenproblems in Java
  • So zeigen Sie die Zeitzone in MySQL an und ändern sie
  • Detaillierte Erklärung der MySQL-Zeitstempeltypen und Zeitzonenbeispiele
  • Zusammenfassung der Methoden zum Ändern der MySQL-Zeitzone
  • So unterscheiden Sie Groß- und Kleinbuchstaben in Zeichenfolgen bei MySQL-Abfragen
  • MySQL-Zeitzonenproblem
  • Eine kurze Zusammenfassung der Zeitzonen von PHP und MySQL
  • mysql löst zeitzonenbezogene Probleme

<<:  So verwenden Sie CocosCreator zum Erstellen eines Schießspiels

>>:  React erhält den Eingabewert und übermittelt 2 Methodenbeispiele

Artikel empfehlen

Holen Sie sich die IP und den Hostnamen aller Hosts auf Zabbix

zabbix Zabbix ([`zæbiks]) ist eine Open-Source-Lö...

MySQL-Abfrageoptimierung: Eine Tabellenoptimierungslösung für 1 Million Daten

1. Abfragegeschwindigkeit von zwei Abfrage-Engine...

Docker entfernt abnormale Containervorgänge

Dieser Neuling ist auf ein solches Problem gestoß...

So erstellen Sie geplante Aufgaben mit dem Crond-Tool in Linux

Vorwort Crond ist ein Tool zur geplanten Ausführu...

Aktivieren oder Deaktivieren des GTID-Modus in MySQL online

Inhaltsverzeichnis Grundlegende Übersicht GTID on...

JavaScript zur Implementierung der Schaltfläche „Zurück nach oben“

In diesem Artikel wird der spezifische Code für J...

Tutorial zur Installation von JDK und Tomcat unter Linux CentOS

Laden Sie zuerst JDK herunter. Hier verwenden wir...

Detaillierte Erläuterung der Kubernetes-Pod-Orchestrierung und des Lebenszyklus

Inhaltsverzeichnis K8S Master Grundlegende Archit...

So führen Sie Linux-Befehle im Hintergrund aus

Wenn Sie einen Befehl im Terminal ausführen, müss...