Heim >Datenbank >MySQL-Tutorial >Ausführliche Erklärung, wie man die Falle der URL-Zeitzone in MySQL vermeidet

Ausführliche Erklärung, wie man die Falle der URL-Zeitzone in MySQL vermeidet

小云云
小云云Original
2017-12-22 13:38:131618Durchsuche

Wenn Sie JAR-Dateien von MySQL 6.0.x oder höher verwenden, müssen Sie neuerdings serverTimezone im Link der Code-URL angeben. Bei dieser Frage geht es um die URL-Zeitzone in MySQL. Wenn Sie diese Falle nicht beachten, erfahren Sie in diesem Artikel hauptsächlich, wie Sie die URL-Zeitzone-Falle in MySQL vermeiden können.

1. ServerTimezone ist nicht angegeben

Ausnahme beim Konfigurieren der URL in XML

<property name="url" value="jdbc:mysql://localhost:3306/mybatisstudy"/>


Caused by: com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

Sie müssen Konfigurieren Sie den Server oder JDBC-Treiber (über die Konfigurationseigenschaft serverTimezone). Wenn Sie die Zeitzonenunterstützung verwenden möchten, müssen Sie einen detaillierteren Zeitzonenwert verwenden.

2. Online-Lösungen

Parameter nach der URL hinzufügen?serverTimezone=utc

<property name="url" value="jdbc:mysql://localhost:3306/springdatastudy?serverTimezone=UTC"/>

Aufgetretene Probleme

Obwohl das Programm mit der oben hinzugefügten Zeitzone fehlerfrei funktionierte, gab es ein Problem, als wir Java-Code verwendeten, um die Zeit in die Datenbank einzufügen.

Zum Beispiel ist die in den Java-Code eingefügte Zeit: 21.08.2017 17:29:56

Aber die in der Datenbank angezeigte Zeit ist: 2017-08- 21 09:29:56

3. Die Grundursache liegt

im Problem mit der Zeitzoneneinstellung.

UTC stellt die globale Standardzeit dar, aber die von uns verwendete Zeit ist die Pekinger Zeitzone, also der östliche Achte Bezirk, acht Stunden vor UTC.

UTC + (+0800) = Ortszeit (Peking)

4. Die Zeitzone von

URL verwendet die chinesische Standardzeit. Auch serverTimezone=Asia/Shanghai

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

Calendar cal = Calendar.getInstance();
TimeZone timeZone = cal.getTimeZone();
System.out.println(timeZone.getID());
System.out.println(timeZone.getDisplayName());
Asia/Shanghai
中国标准时间

Verwandte Empfehlungen:

Beispiele für die Verwendung von or-Anweisungen in MySQL

Detaillierte Erläuterung von Indizes und Triggern in MySQL

Zusammenfassung der Datumsfunktionen in MySQL

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man die Falle der URL-Zeitzone in MySQL vermeidet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn