MySQL 8.0 のタイムゾーン問題を解決する手順

MySQL 8.0 のタイムゾーン問題を解決する手順

ソフトウェアバージョン

  • ウィンドウズ: ウィンドウズ10
  • MySQL: mysql-8.0.16-winx64.zip

問題の説明

Javaが現在の時刻をMySQLデータベースに保存すると、MySQLの時刻が正しくなくなります

問題分析

理由1: Javaデータベース接続はUTCタイムゾーン(世界時)を使用します。つまり、serverTimezone=UTCです。

URL: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=true

理由2: MySQLで使用されるtime_zone属性は+00:00であり、北京時間はUTC時間より8時間早い、つまりUTC+08:00です。

MySQLをチェック

/**
 * グローバルタイムゾーン設定とセッションタイムゾーン設定を表示できます * global.time_zone は、Java がデータベースに接続するときのタイムゾーン設定を担当します * session.time_zone は、Navicat クライアントがデータベースに接続するときのタイムゾーン設定を担当します * /
mysql> @@global.time_zone、@@session.time_zone を選択します。

/**
 * 別の方法があります * システムはシステムタイムゾーンの使用を表します * CSTは非常に厄介なタイムゾーンで、4つのタイムゾーンが含まれます * /
mysql> '%time_zone%' のような変数を表示します。 

// タイムゾーンを確認します。このコマンド ラインは、session.time_zone が正しく設定されているかどうかを検出できます。mysql> select now();

回避策

ステップ1: JavaのタイムゾーンをEast 8に変更する

// serverTimezone は北京時間 GMT%、上海時間 Asia/Shanghai、香港時間 Hongkong に設定できます
URL: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true

ステップ2: MySQLデータベースのタイムゾーンをEast 8に変更する

// 方法 1: コマンドを使用する (利点: MySQL サービスを再起動する必要がない、欠点: MySQL サービスを再起動すると設定が消える)
mysql> タイムゾーンを '+8:00' に設定します。
mysql> グローバルタイムゾーンを '+8:00' に設定します。
// 方法 2: my.ini 構成ファイルを変更する (利点: 設定を永続的に保存、欠点: MySQL サービスを再起動する必要がある)
[mysqld]
// デフォルトのタイムゾーンを設定します default-time_zone='+8:00'

これで、MySQL 8.0 のタイムゾーン問題を解決する手順に関するこの記事は終了です。MySQL 8.0 のタイムゾーンに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

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

<<:  独自の Docker イメージを作成して Dockerhub にアップロードする方法

>>:  XHTML言語のデフォルトCSSスタイル

推薦する

Windows Server 2016 に Docker をインストールする方法

最近、Microsoft は Docker をネイティブにサポートする Windows Server...

ウェブフォームデザインのための5つの実用的なヒント

1. フォームテキスト入力のモバイル選択: テキスト入力フィールドにプロンプ​​トが追加されている場...

CSSタグの表示モードの詳細な説明

ラベル表示モード(重要) divタグとspanタグ1. スタイルはまったく同じですが、ラベルが異なり...

DockerでSpring Bootアプリケーションを実行する方法

ここ数日、dockerでSpring Bootアプリケーションを実行する方法を勉強してきました。以前...

インデックスを使用して数千万のデータを持つ MySQL のクエリ速度を最適化する

1. インデックスの役割一般的に言えば、インデックスは本の目次に相当します。条件に基づいてクエリを実...

ユニークインデックスの S ロックと X ロックによる MySQL デッドロック ルーチンの理解

「初心者向けソースコードからの MySQL デッドロック問題の理解」では、MySQL ソースコードを...

Linux での JDK と Tomcat のアップロードと設定に関する詳細なチュートリアル

準備1. 仮想マシンを起動する2. gitツールルートアカウントでログインルートアカウントを使用して...

組み込み Linux で QT アプリケーションを再起動する簡単な方法 (QT4.8 qws ベース)

アプリケーション ソフトウェアには通常、次のようなビジネス要件があります。新しいバージョンの APP...

ウェブページの画像最適化ツールと使用方法のヒントの共有

ウェブページの基本要素として、画像はページの読み込み速度に影響を与える重要な要素の 1 つです。画像...

Linuxサービスの監視と運用および保守

目次1. psutilパッケージをインストールする次に、オペレーティングシステム内のすべてのサービス...

mysql 解凍パッケージの基本インストールチュートリアル

新しいコンピューターに変更したので、すべての環境を新しいコンピューター上で設定する必要があります。ふ...

MySQLはカバーインデックスを使用してテーブルリターンを回避し、クエリを最適化します。

序文カバーリング インデックスについて説明する前に、まずそのデータ構造である B+ ツリーを理解する...

ウェブページ要素の完全な分析

相対的な長さの単位それら説明: 相対的な長さの単位。現在のオブジェクト内のテキストのフォント サイズ...

MySQL 5.6 の「暗黙的な変換」によりインデックスが失敗し、データが不正確になる

背景SQL クエリを実行するときに、where 条件の vachar 型フィールドの単一引用符を削除...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...