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 つのメソッドの例を送信します

推薦する

LinuxサーバーにVueプロジェクトをデプロイする

ケース1 vue-cliはvue3プロジェクトをビルドし、プロジェクトをLinuxサーバーにアップロ...

MybatisはSQLクエリのインターセプションと変更の詳細を実装します

序文インターセプターの機能の 1 つは、特定のメソッドの呼び出しをインターセプトできることです。イン...

リンク内の href=# はどういう意味ですか?

現在のページへのリンク。 -------------------一般的な使用法は次のとおりです。 &...

Ubuntu 16.04/18.04 に Pycharm と Ipython をインストールするチュートリアル

Ubuntu 18.04の場合1. sudo apt install python 。コマンドライン...

CSS3で実装されたサムネイルホバー効果

成果を達成する実装コードhtml <ヘッダー> <h1><em>...

ウェブデザイナーが持つべき資質と能力

Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...

Linux Cron によるパラメータ付き PHP コードのスケジュール実行

1. 引き続き PHP スクリプトを使用して実行します。コマンドラインに入力: php /home/...

Linux インストール MongoDB の起動と一般的な問題の解決

MongoDB のインストール プロセスと問題記録1. MongoDBのインストールMongoDBを...

Linux (CentOS7) で RPM を使用して MySQL 8.0.11 をインストールするチュートリアル

目次1. インストールの準備1. Linux関連情報の表示(Linuxコマンドライン操作) 2. M...

時間を節約できる Linux コマンド エイリアス 15 個

序文Linux システムの管理と保守のプロセスでは、多数のコマンドが使用されます。非常に長いコマンド...

効率的なMySQLページングの詳細な説明

序文通常、大量のデータを扱う MySQL クエリには「ページング」戦略が採用されます。ただし、ページ...

MySQL初心者はグループ化や集計クエリの煩わしさから解放されます

目次1. グループクエリの概略図2. groupbyキーワード構文の詳細な説明3. 簡単なグループク...

Linux における mv コマンドの高度な使用例

序文mv コマンドは、move の略語で、ファイルを移動したり、ファイル名を変更したり (ファイルの...

MySQL における楽観的ロックと悲観的ロックの例

データベース管理システムにおける同時実行制御のタスクは、データベース内の同じデータに同時にアクセスす...