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コマンドunzipの詳しい説明

目次1. 解凍コマンド1.1 構文1.2 オプション2. 例1. 解凍コマンドunzip コマンドは...

Navicatを使用してクラウドサーバーデータベースにリモート接続する方法

秘密鍵を開かずにリモート サーバーのデータベースに接続するのは非常に便利です。新しい接続でデータを入...

MySQLはSQL文を使用してテーブル名を変更します

MySQL では、SQL ステートメント rename table を使用してテーブル名を変更できま...

JavaScript の条件付きアクセス属性と矢印関数の紹介

目次1. 条件付きアクセス属性2. アロー関数の紹介1. 条件付きアクセス属性?. は ES2020...

MySQLクエリは、フィールドが数値とカンマではないことを指定します。

コアSQL文数字を含まない MySQL クエリ ステートメント: SELECT * FROM tes...

MySQL カーソルの概念と使用法の詳細な説明

この記事では、例を使用して MySQL カーソルの概念と使用方法を説明します。ご参考までに、詳細は以...

検証コードケースのJavaScript実装

この記事では、検証コードの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

HTML+CSS+JavaScript でシンプルな三目並べゲームを作成する

目次HTMLの実装CSSを追加Javascript部分の実装デモアドレス HTMLの実装まず、hea...

MySQLクエリ最適化: 100万件のデータに対するテーブル最適化ソリューション

1. 2つのクエリエンジン(myIsamエンジン)のクエリ速度InnoDB はテーブル内の特定の行数...

JavaScriptのポイントごとのシリーズでこれは何ですか

これを理解するおそらく、他のオブジェクト指向プログラミング言語でもthis見たことがあり、これがコン...

Jenkins + Docker + ASP.NET Core の自動デプロイメントの問題について (落とし穴を避ける)

このブログを書くつもりはなかったのですが、実際の操作中に、ネットワークの問題に圧倒されたこと (ネッ...

JavaScript フレームワーク デザイン パターンの詳細な説明

目次動画最優秀選手ムヴヴムVueのソーススパ mpa要素を作成するクラス要約する動画 Model(模...

MySQL累積計算実装方法の詳しい説明

目次序文需要分析MySQL ユーザー変数累積計算にMysqlユーザー変数を使用する要約するこの記事で...

FTP、FTPS、SFTPの違いについて簡単に説明します

目次FTP、FTPS、SFTP の概要FTP FTPS FTPサーバーFTPソフトウェアのアクティブ...

超詳細なMySQL使用仕様の共有

最近、データベース関連の操作が多くなり、会社の既存の仕様はあまり包括的ではありません。インターネット...