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スタイル

推薦する

MySQLクエリプランでken_lenの値を計算する方法

key_lenの意味MySQL では、次に示すように、explain を使用して SQL ステートメ...

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...

HTMLでのフォーム送信の実装

フォーム送信コード1. ソースコード分析 <!DOCTYPE html> <htm...

CSS継承方法

次の背景画像を持つ div があるとします。 次の反射効果を作成します。 方法はたくさんありますが、...

MySQLの日付文字列タイムスタンプ変換の詳細な説明

時刻、文字列、タイムスタンプ間の変換は、日常生活でよく使用されます。よく使用されますが、私は使用する...

MySQLトランザクション処理の使用方法とサンプルコードの詳細な説明

MySQL トランザクション サポートは、MySQL サーバー自体にバインドされているのではなく、ス...

JavaScriptで計算機機能を実現するプロセスの詳細な説明

目次1. 電卓機能の紹介2. 計算機ページのデザイン1. ナビゲーションバー2. データ部分3. i...

MySQL でトリガーを無効化および有効化するチュートリアル [推奨]

MYSQL を使用する場合、トリガーがよく使用されますが、不適切な使用によって問題が発生する場合が...

Linux における SUID、SGID、SBIT の素晴らしい使い方の詳細な説明

序文Linux のファイル権限管理はとにかく素晴らしいです。SUID、SGID、SBIT の機能を確...

yum 経由で CentOS に PHP をインストールするチュートリアル

まず、yumを使ってCentOSにPHPをインストールする方法を紹介します。 1. PHPのyumソ...

CSSブレンドモードとSVGを使用して、製品画像の色を動的に変更します。

数日前、Codepen で @Kyle Wetton が書いた、CSS ブレンディング モードと S...

Dockerを使用してクローンリポジトリを使用してGitイメージを構築する

概要私は 1 年以上 Docker を使用しています。最近、サービスをすばやくオーケストレーションし...

Vueは、選択した月に応じて日付に対応する曜日を動的に表示します。

私たち謙虚なプログラマーは、今でもこう歌わなければなりません。「あなたも私も、この世に生まれて、一日...

MySQL 8.0.23 のレプリケーション アーキテクチャにおけるスレーブ ノードの自動フェイルオーバー

私はしばらく MGR と連絡を取り合ってきました。MySQL 8.0.23 の登場により、MySQL...