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

推薦する

ボタントリガーイベントを使用して背景色の点滅効果を実現します

背景色の点滅効果を実現するには、次のコードを <body> 領域に追加するだけです。コー...

JavaScriptはブラウザがIEかどうかを判定します

フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れてい...

nginx設定ファイルの解釈の詳細な説明

nginx 設定ファイルは主に 4 つの部分に分かれています。 main{#(グローバル設定) ht...

Apache Bench ストレステストツールの実装原理と使用状況分析

1: スループット(1秒あたりのリクエスト数)サーバーの同時処理能力を定量的に表したもので、reqs...

変換を使用して純粋な CSS ポップアップ メニューを実装するためのサンプル コード

序文トップメニューを作成する場合、ポップアップのセカンダリメニューを作成する必要があります。 以前の...

MySQL 8.0 でリモートアクセス権限を設定する方法

前回の記事では、MySQL パスワードをリセットする方法を説明しました。一部の学生から、データベース...

Vueはカルーセルアニメーションを実装します

この記事では、カルーセルアニメーションを実現するためのVueの具体的なコードを例として紹介します。具...

ウェブサイトのテキストはまだデザインする必要がありますか?

多くの人が、ウェブサイト上のテキストはデザインする必要があるのか​​と疑問に思うかもしれません。多く...

Alibaba Cloud OSS アクセス権設定(RAM 権限制御)実装

シナリオmyBuket の static/material/ ディレクトリなど、Alibaba Cl...

Ubuntu 12.04 でカーネルツリーを構築する実装プロセスの詳細な説明

まず使用しているカーネルのバージョンを確認してくださいlin@lin-仮想マシン:~$ uname ...

MySQL ストアド関数(カスタム関数)の定義と使用方法の詳細な説明

ストアド関数ストアド関数とは: SQL コードの一部をカプセル化し、特定の関数を完了して、結果を返し...

JavaScript でのカスタム スワイパー コンポーネントの詳細な説明

目次エフェクト表示コンポーネント設定ステップ1ステップ2ステップ3コンポーネントの使用ステップ1ステ...

Vue フィルター、ライフサイクル関数、vue-resource の簡単な紹介

1. フィルター例: <!DOCTYPE html> <html lang=&qu...

MySQLでデータベースのインストールパスを表示する方法

mysql コマンドを使用して、mysql のインストール パスを表示できます。 # 次の 2 つの...

エコー後に要素編集フォームel-radioが選択できない問題を解決します

目次序文質問オンラインソリューション序文この記事の内容は私がこの業界に入ったときのメモを元にしている...