MySQL で URL タイムゾーンの罠を回避する方法

MySQL で URL タイムゾーンの罠を回避する方法

序文

最近、MySQL 6.0.x 以降の jar を使用する場合、コード URL リンクで serverTimezone を指定する必要があります。例外が発生します:

1. serverTimezoneが指定されていません

xmlでURLを設定する

<プロパティ名="url" 値="jdbc:mysql://localhost:3306/mybatisstudy"/>

異常

原因: com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: サーバーのタイム ゾーン値 '�й���׼ʱ��' は認識されないか、複数のタイム ゾーンを表します。タイム ゾーン サポートを利用する場合は、サーバーまたは JDBC ドライバー (serverTimezone 構成プロパティ経由) を構成して、より具体的なタイム ゾーン値を使用する必要があります。

タイム ゾーン サポートを使用する場合は、より詳細なタイム ゾーン値を使用するようにサーバーまたは JDBC ドライバー (serverTimezone 構成プロパティ経由) を構成する必要があります。

2. オンラインソリューション

URLの後にパラメータ?serverTimezone=utcを追加します

<プロパティ名="url" 値="jdbc:mysql://localhost:3306/springdatastudy?serverTimezone=UTC"/>

2.1. 遭遇した問題

上記のタイムゾーン プログラムを追加する際にはエラーは発生しませんが、Java コードを使用してデータベースに時間を挿入する際に問題が発生します。

たとえば、Java コードに挿入される時刻は次のようになります: 2017-08-21 17:29:56

しかし、データベースに表示される時刻は、2017-08-21 09:29:56です。

3. 根本原因

タイムゾーン設定の問題のためです。

UTC は協定世界時の略ですが、ここで使用する時間は北京タイムゾーンの East 8 で、UTC より 8 時間進んでいます。

UTC + (+0800) = 現地時間(北京)

4. 解決策

URL のタイムゾーンは中国標準時を使用します。つまり、 serverTimezone=Asia/Shanghai

4.1 Javaコードを使用してローカルタイムゾーンIDを取得する

カレンダー cal = Calendar.getInstance();
タイムゾーン timeZone = cal.getTimeZone();
System.out.println(timeZone.getID());
System.out.println(timeZone.getDisplayName());
アジア/上海
中国標準時

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。

以下もご興味があるかもしれません:
  • Docker の MySQL コンテナのタイムゾーン問題の修正
  • Java における MySQL タイムゾーン問題の詳細な説明
  • MySQL でタイムゾーンを表示および変更する方法
  • MySQL のタイムスタンプの種類とタイムゾーンの例の詳細な説明
  • MySQL タイムゾーンを変更する方法の概要
  • MySQL クエリ時に文字列の大文字と小文字を区別する方法
  • mysql タイムゾーンの問題
  • PHP と MySQL のタイムゾーンの簡単な概要
  • mysqlはタイムゾーン関連の問題を解決します

<<:  CocosCreatorを使ってシューティングゲームを作る方法

>>:  React は入力値を取得し、2 つのメソッドの例を送信します

推薦する

MySQL の自動増分主キーが使い果たされた場合の対処方法

面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...

MySQLデータベースインデックスの左端一致原則

目次1. 共同インデックスの説明2. ac はインデックスを使用できますか? 3. 考える4. 最左...

MySQLデータベースでコマンドを自動補完する3つの方法

注意: 3 番目の方法は XSell でのみ使用され、finalsell では使用できません。方法1...

Ubuntu 18.04 は mysql 5.7.23 をインストールします

以前、Ubuntu 16.04 に MySQL をスムーズにインストールしました。今回、Ubuntu...

Mongodb の GUID 表示の問題の詳細な分析

問題を見つける最近、プログラムのストレージを Mongodb に移行したところ、Guid 型が書き込...

Linux コマンドラインで電卓を使用する 5 つのコマンド

みなさんこんにちは。私は梁旭です。 Linux を使用するときに、計算を行う必要がある場合があり、そ...

HTML ページ スタイルの !-- -- の機能は何ですか?

主に低バージョンのブラウザ向け<!-- --> は HTML コメント タグです。上位バ...

UbuntuはPythonスクリプトのサンプルコードを定期的に実行する

オリジナルリンク: https://vien.tech/article/157序文この記事では、Ub...

見落とされがちなMETAタグの特殊効果(ページ遷移効果)

Web デザインで js を使用すると、多くのページ効果を実現できますが、HTML タグの META...

ウェブフロントエンドエンジニアにおすすめのヒント

まず、Webフロントエンドエンジニアの価値についてお話ししましょう。現在、Web製品のインタラクショ...

Bash の山括弧の深い理解 (初心者向け)

序文Bash には、ls、cd、mv などの重要な組み込みコマンドが多数あるほか、grep、awk、...

mysql 一時テーブルの使用状況の分析 [クエリ結果は一時テーブルに保存できます]

この記事では、例を使用して MySQL 一時テーブルの使用方法を説明します。ご参考までに、詳細は以下...

CSS スタイルの読み込みの優先順位に関する経験の共有

昨日のプロジェクト開発中に、スタイルの読み込み優先順位に関する問題が発生しました。クラスは定義され、...

MySQL innodb_autoinc_lock_mode について

innodb_autoinc_lock_mode パラメータは、auto_increment 列を持...